作用

jhat(JVM Heap Analysis Tool)用来分析jmap生成的堆Dump。

TIPS

  • 此命令是实验性的,不受支持。
  • jhat功能不是很强,VisualVM、Eclipse Memory Analyzer等都比jhat强大,建议优先使用jhat的替代工具。

参考文档

使用说明

命令格式:

jhat [options] heap-dump-file

options的可选项如下:

  • -stack false | true:开启或关闭跟踪对象分配调用栈,默认true
  • -refs false | true:开启或关闭对对象引用的跟踪,默认true
  • -port port-number:指定jhat HTTP Server的端口,默认7000
  • -exclude exclude-file:指定一个文件,该文件列出了应从可达对象查询中排除的数据成员。例如,如果文件包含java.lang.String.value,则对于指定对象o,不管对象列表针对o是否可达,都不会考虑涉及java.lang.String.value的引用路径
  • -baseline exclude-file:指定基线堆Dump文件。两个堆Dunmp中,具有相同对象ID的对象都会标记为不是新对象,其他对象被标记为新对象。这对于比较两个不同的堆转储很有用。
  • -debug intSets:指定该工具的debug级别。设置为0,则不会有debug输出。数值越高,日志越详细。
  • -version:显示版本

使用示例

# 分析1.hprof,并开启对象分配调用栈的分析
jhat -stack true 1.hprof

# 分析1.hprof,开启对象分配调用栈的分析,关闭对象引用的分析
jhat -stack true -refs false 1.hprof

等待片刻之后,访问 http://localhost:7000/ 即可查看分析结果。

Q.E.D.

知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

那一年,我也变成了光!!