IBM java的分析工具(ga和ha)学习和整理


背景

前几天学习了整理了 jca 工具
今天继续学习一下 ga工具
ga 工具主要是分析gclog相关.
可以很直观的进行gclog的分析和展示. 

除了mat之外还有一个比较轻量级的内存dump分析工具
ha. 想着一起学习和分析一下.

ga工具的相关学习

下载: 
https://www.ibm.com/support/pages/ibm-pattern-modeling-and-analysis-tool-java-garbage-collector-pmat

同意一下就可以下载对应的jar包了.

启动配置要求

需要增加配置信息:
-XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC

需要进行gclog的打印. 
-Xloggc:/tmp/gclog
方便的话还可以打印一下native Memory
-XX:NativeMemoryTracking=detail

简单使用

使用 java -jar的方式将 ga 工具启动起来.
然后加载对应的gclog 就可以进行分析. 

需要注意使用方式与之前的jca比较类似, 这里不在重复.

IBM java的分析工具(ga和ha)学习和整理_java


ha工具的相关学习

下载地址:
https://www.ibm.com/support/pages/ibm-heapanalyzer

注意这个文档强烈建议 使用mat. 
需要注意的是 这个工具比较小巧, 速度会快一些. 
Note: IBM HeapAnalyzer has no new development and therefore, 
in general, we recommend using the Eclipse Memory Analyzer Tool (MAT) instead which is open source, 
has active development, and has a similar feature set (leak suspects, etc.).

mat 分析一个 27G的dump文件要耗时 25min 以上, ha 工具的分析时间大约为: 

如果是内存比较小, 并且机器磁盘比较垃圾. mat分析可能要超过一个多小时. 所以节约的时间可能还比较可观.

简单使用

java -jar 就可以启动 ha的工具.
然后打开dump文件就可以分析. 

工具与mat有一些相近. 使用方式主要如下:

缺点

界面比较卡顿, 虽然可能比mat打开的速度快一些,
但是对数表键盘的支持比较差, 拖动时容易出现问题. 

共同的缺点
其实不管是mat和ha 都需要大量的磁盘写入.

mat 大概要产生跟prof文件相同大小的索引文件
ha  要产生一般大小的hax后缀的文件.

IBM java的分析工具(ga和ha)学习和整理_java_02