Java性能优化的5个技巧

Java性能优化的5个技巧

  • 版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。

要优化Java代码需要正确的分析它的工作机制,影响性能优化有几个因素,比如垃圾收集、操作系统的设置、虚拟机的设置等。

1. 从最小堆分配开始

推荐从最小堆分配开始。然后根据应用程序的实际需要来逐渐增加最小堆,可以通过下面的指令来指示JVM在发生OutOfMemoryError异常时倾倒堆数据:

-XX:+HeapDumpOnOutOfMemoryError

对可用内存的适当利用是优化应用速度的好办法。

一开始时,堆尺寸保持在1GB~7GB之间就足以了。然后取决于老一代和新生代对象的比例进行调整。

2. 使用Java性能工具

业界有几个Java性能工具,比如VisualVM、YourKit、Java Mission Control等,可用于跟踪应用程序的性能。

NetBeans开发工具的Profiler也是一个很好的选择。

3. 使用StringBuilder代替“+”操作符

对于字符串的操作,其中如果用到了“+”操作符,那么应该改用StringBuilder代替。比如上面的代码。

这样使得字符串值修改更容易,而且不会对垃圾收集器GC造成额外的压力。

StringBuilder x = new StringBuilder("a");
x.append(args.length);
x.append("b");
if (args.length == 1);
x.append(args[0]);

4. 避免使用迭代器

如果代码像这样:

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
}

编写基于索引的迭代非常有用。

5. 具有更好的并行控制

并行是把多个应用程序以彼此并行的方式运行。为了解决多请求的Web流,推荐使用带乐观锁的分离实体或扩展的持久上下文。

此外,了解关系数据库管理系统RDBMS和数据访问框架的内部机制对提高数据访问层的性能至关重要。

你可能感兴趣的:(java,jvm,性能优化,最小堆)