调优案例分析与实战

一、案例分析

  1. 高性能硬件上的程序部署策略
    64位的JDK,缺点:内存回收导致长时间停顿。
    性能低于32位JDK。内存消耗大,例如类型对齐补白。
    =====================
    对于CUP资源敏感度高的场景,选择"吞吐量优先"收集器。
    对于追求低停顿的场景,选择CMS收集器。

  2. 集群间同步导致的内存溢出

  3. 堆外内存导致的溢出错误
    当JVM运行时抛出OutOfMemoryError异常时,堆内各个区域的内存都表示内存充足无压力。可以考虑Derect Memory区域是否内存不足,且无法GC。
    在32位的操作系统中。一般给每个线程分配2G的内存,堆占用1.6G,剩下的0.4G分配给Drect Memory。
    Drect Memory的GC和堆区域不同,只有进行Full GC是顺带进行Drect Memory区域的GC,所以在这种情境下产生内存溢出异常。

  4. 外部命令导致系统缓慢

  5. 服务器JVM进程崩溃

  6. 不恰当数据结构导致内存占用过大
    例如使用HashMap的集合结构,实际数据的存储内存为16B(2*8B)但是因为各种原因总占用的空间为88B。空间效率为16B/88B=18%。
    应当适当的更改数据结构使内存占用减少。

  7. 由Windows虚拟内存导致的长时间停顿

二、实战:Eclipse运行速度调优

  1. 调优前的程序运行状态

  2. 升级JDK的性能变化及兼容问题

  3. 编译时间和类加载时间的优化

  4. 调整内存设置控制垃圾收集频率

  5. 选择收集器降低延迟

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值