For investors
股价:
5.36 美元 %For investors
股价:
5.36 美元 %认真做教育 专心促就业
性能优化是大多数java编程开发程序员都在关注的一个问题,下面我们就通过案例分析来了解一下,java编程性能优化都有哪些方法。
一、java中正则表达式相关优化
使用Matcher和Pattern进行预编译,替换String.matches,split,replaceAll,replaceFirst等方法,避免不必要的pattern编译。
二、java.util.LinkedList性能
考虑使用ArrayDeque用于基于队列的算法替换LinkedList,性能优于LinkedList;
使用ListIterator(forEach)遍历LinkedList【链表特性】;
避免任何接受或返回列表中元素索引的LinkedList方法【类似获取index的操作】,性能很差,遍历列表实现;
三、java.util.Date,java.util.Calendarandjava.text.SimpleDateFormatperformance日期的存储,解析和转换
除非您必须使用java.util.Date,否则不要使用它。改用普通的long。
java.util.Calendar可用于各种日期计算,但要避免存储大量此类对象或广泛创建它们——它们消耗了大量内存,创建成本高昂。
java.text.SimpleDateFormat适用于一般案例日期时间解析,但如果您必须以相同的格式解析大量日期(特别是没有时间的日期),好避免它。改为手动实现解析器。
四、使用JodaTime类库进行时间处理,在某些方面性能更好
五、java.io.ByteArrayOutputStream,不应该在性能关键代码中使用ByteArrayOutputStream
对于性能关键型代码,请尝试使用ByteBuffer而不是ByteArrayOutputStream。如果您仍然想使用ByteArrayOutputStream-请取消其同步。
在大多数情况下,避免使用ByteArrayOutputStream.toByteArray方法——它创建一个内部字节数组的副本。如果您的应用程序使用几千兆字节内存,收集这些副本的垃圾可能需要相当长的时间。
六、java.io.BufferedInputStream,java.util.zip.GZIPInputStream,java.nio.channels.FileChannel:这两个流中的一些小性能陷阱
BufferedInputStream和GZIPInputStream都有内部缓冲区。前者的默认大小为8192字节,后者的默认大小为512字节。一般来说,值得将任何尺寸增加到至少65536。
七、各种通用压缩算法的性能——其中一些速度惊人(LZ4)
如果您认为数据压缩速度非常缓慢,请检查LZ4(快速)实现,该实现能够以约320Mb/秒的速度压缩文本文件——对于大多数应用程序来说,这种速度的压缩不应该很明显。如果可能,将LZ4压缩缓冲区大小增加到32M限制是有意义的(请记住,您需要一个类似大小的缓冲区进行解压缩)。您还可以尝试将2个具有32M缓冲区大小的LZ4BlockOutputStream-s链起来,以充分利用LZ4。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。