Java性能调优

针对Java虚拟机内存的调优,大多数都是针对特定情况。但是在实际应用中,调优很难与Java运行动态特征的实际情况和工作负载保持一致。也就是说,几乎不可能通过单纯的调优来达到消除GC的目的,我们所做的内存调优只是尽可能少的去减少内存消耗,进一步可以减少因为内存不足而引起的GC不断

真正影响Java程序性能的,就是碎片化。碎片是Java堆内存中的空闲空间,可能是TLAB剩余空间,也可能是被释放掉的具有较长生命周期的小对象占用的内存。

下面是在实际开发过程中应该注意的点:

  1. 减少new对象。每次new对象之后,都要在堆中开辟新的内存空间。这些对象不被引用之后,还要回收掉。因此,在最大限度地合理重用对象,或者使用基本数据类型代替对象,都有利于节省内存;
  2. 多使用局部变量,减少静态变量和全局变量的使用。局部变量储存在栈内存中,会随着方法的消失而消失;全局变量储存在堆内存中,有GC负责回收;静态变量储存在方法区中,程序结束时释放;
  3. 避免使用finalize。该方法会给GC增添很大的负担;
  4. 如果是单线程,尽量使用非多线程安全。因为线程安全来自于同步机制,同步机制会降低性能。例如:在单线程程序,能够使用HashMap,就不要使用HashTable。同理尽量减少使用synchronized;
  5. 对于经常反复使用的对象使用缓存;
  6. 尽量使用基本数据类型而不是包装类。基础数据类型是储存在栈中,包装类是应用储存在栈中,示例数据储存在堆中。默认值不同,例如int的默认值是0,而Integer的默认值为null;
  7. 尽量使用一堆数组而不是二维数组。二维数组比一维数组占用更多内存空间;
  8. 尽量使用final修饰符,final表示不可修改,访问效率高;
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值