Java性能优化权威指南第五六七章
Oracle Solaris Studio Performance Analyzer
擅长方法分析,monitor对象分析(锁竞争分析)
步骤:
1 执行collect命令,运行java应用,收集性能采样数据
2 通过gui工具或er_print命令进行性能分析
不支持windows平台
NetBeans Profiler
支持windows
用法和VisualVm类似
Java6之后的jdk中包含此软件,在bin下的jvisualvm
支持远程分析
java性能优化:
1 更高效的算法
2 减少锁争用
3 为算法生成更有效率的代码
减少内核态cpu使用率,除了I/O操作系统
java NIO的非阻塞方式可以减少网络I/O
减少锁数据范围,减少等待锁而浪费的cpu周期
确定系统优先级:
1 可用性
2 可管理性
3 吞吐量
4 延迟及响应性
5 内存占用
6 启动时间
垃圾收集器调优原则:
1 minorGC尽可能多收集垃圾对象,减少fullGC频率
2 堆空间越大,垃圾收集效果越好
3 吞吐量,延迟,内存占用优先选择两项调优
安全点:所有java应用线程都被阻塞,执行本地代码的线程都被禁止返回vm执行java代码
老年代,永久代满了,都会导致fullGC
新生代调整准则:
1 老年代空间大小不应该小于活跃数据大小的1.5倍
2 新生代空间至少应为java堆大小的10%
3 堆大小不要超过物理内存

浙公网安备 33010602011771号