Java性能优化的5个技巧 版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 要优化Java代码需要正确的分析它的工作机制,影响性能优化有几个因素,比如垃圾收集、操作系统的设置、虚拟机的设置等。1. 从...
版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。
要优化Java代码需要正确的分析它的工作机制,影响性能优化有几个因素,比如垃圾收集、操作系统的设置、虚拟机的设置等。
推荐从最小堆分配开始。然后根据应用程序的实际需要来逐渐增加最小堆,可以通过下面的指令来指示JVM在发生OutOfMemoryError异常时倾倒堆数据:
-XX:+HeapDumpOnOutOfMemoryError
对可用内存的适当利用是优化应用速度的好办法。
一开始时,堆尺寸保持在1GB~7GB之间就足以了。然后取决于老一代和新生代对象的比例进行调整。
业界有几个Java性能工具,比如VisualVM、YourKit、Java Mission Control等,可用于跟踪应用程序的性能。
NetBeans开发工具的Profiler也是一个很好的选择。
对于字符串的操作,其中如果用到了“+”操作符,那么应该改用StringBuilder代替。比如上面的代码。
这样使得字符串值修改更容易,而且不会对垃圾收集器GC造成额外的压力。
StringBuilder x = new StringBuilder("a");
x.append(args.length);
x.append("b");
if (args.length == 1);
x.append(args[0]);
如果代码像这样:
for (String value: strings) {
// Do something useful here
}
那么在每次运行这个代码时,都会创建一个新的迭代器实例,而这会消耗大量的内存。
故建议使用下面的代码:
int size = strings.size();
for (int i = 0; i < size; i++) {
String value: strings.get(i);
// Do something useful here
}
如果实际的列表对象不需要真正发生改变,那么还可以在其阵列版本上操作,比如:
for (String value: stringArray) {
// Do something useful here
}
编写基于索引的迭代非常有用。
并行是把多个应用程序以彼此并行的方式运行。为了解决多请求的Web流,推荐使用带乐观锁的分离实体或扩展的持久上下文。
此外,了解关系数据库管理系统RDBMS和数据访问框架的内部机制对提高数据访问层的性能至关重要。
本站为非盈利网站,如果您喜欢这篇文章,欢迎支持我们继续运营!
本站主要用于日常笔记的记录和生活日志。本站不保证所有内容信息可靠!(大多数文章属于搬运!)如有版权问题,请联系我立即删除:“abcdsjx@126.com”。
QQ: 1164453243
邮箱: abcdsjx@126.com