查看线程转储分析结果
前提条件
已创建采样分析记录,并完成分析。
操作步骤
- 在Java性能分析工具界面的“任务/报告列表”区域单击“采样分析”中指定分析任务的名称。
打开“CPU”页签。
- 单击“线程转储”页签。默认在“锁分析图”界面,单击指定线程转储查看线程锁分析图,如图 锁分析图所示。
- 在锁分析图中,左侧为线程,其颜色表示线程状态,绿色为RUNNABLE状态,红色为BLOCKED状态,黄色为WAITING状态,橙色为TIMED_WAITING状态;右侧为锁实例。
- 锁分析图通过连线表示线程对锁的占有情况。实线表示线程已占有锁,虚线表示线程阻塞在对应锁实例上,等待其他线程释放锁后占有。
- 观察模式:开启后,点击锁,会高亮显示锁本身和与请求的线程;也可切换以线程为观察视角,点击线程,将会高亮显示线程本身与持有锁。
- 对比模式:开启后,需要选择要对比的线程转储,对比结果默认以锁为视角显示两个线程与持有的锁。建议对比模式配合观察模式,方便观察两个时间点线程与持有锁的状态变化。也可以切换为以线程为观察视角,观察两个时间点的某个锁和请求线程的状态变化。只有执行两次及以上线程转储之后才可以开启对比模式。
- 如果目标Java应用中存在死锁,会检测出死锁,可以结合线程转储,定位死锁产生原因。
- 右下角可根据图标进行“锁分析图”的缩放和全屏查看。
- 单击“锁分析图”下拉框,选择原始数据。打开线程转储列表界面,展开指定线程转储,单击线程的名称查看线程的调用栈信息,如图 原始数据所示。
父主题: 查看分析结果