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 堆大小不要超过物理内存

posted @ 2020-05-14 15:05  褐色键盘  阅读(128)  评论(0)    收藏  举报