Java性能优化的5个技巧

58 篇文章 0 订阅
32 篇文章 0 订阅

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和数据访问框架的内部机制对提高数据访问层的性能至关重要。

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值