2016年7月7日星期四

Java_027:使用 IBM Thread Dump Analyzer 分析 Thread Dump

环境:MAC OS X 10.11.5 + Oracle JDK 1.7.0_80 + JCA 4.5.7

thread dump 是 java 进程的线程快照,一般要多做几次,进行比较。
比如,等第 1 次 thread dump 文件生成后,接着再获取第 2 次 thread dump 文件。
这样可以看出在先后两个时间点上,线程执行的位置,通过对比这两个文件,进行分析,查出原因,进而解决问题。
比如,如果发现先后两组数据中同一线程都执行在同一位置,则说明此处可能有问题,因为程序运行是极快的,如果两次均在某一点上,说明这一点耗时是很大的。

1. 如何获得 thread dump 文件?
(1)kill -3 PID
(2)jstack -l PID
(3)Ctrl + \ (Linux 前台程序)
(4)Ctrl + Break (Windows 前台程序)

2.  IBM Thread Dump Analyzer 
主页:https://www.ibm.com/developerworks/community/groups/service/html/communityview?communityUuid=2245aa39-fa5c-4475-b891-14c205f7333c

3. 启动IBM Thread Dump Analyzer
java -Xmx500m -jar jca457.jar