jvm工具(四)jhat

语法:
jhat [ options ] <heap-dump-file>


参数:
options 如果使用,应该紧跟在命令之后。
heap-dump-file java二进制堆镜像,对于包含多个堆镜像的,你可以用#<number>指定文件中的堆,例如 "foo.hprof#3"

描述:
jhat命令解析一个java堆镜像文件,然后启动一个web应用。jhat允许用你喜欢的浏览器浏览堆镜像。
jhat支持预定义(pre-designed)查询(像:显示类Foo的所有对象),OQL(对象查询语言)。
像SQL语言一样查询堆镜像。jhat的展示中包含OQL帮助。使用默认端口,OQL帮助在http://localhost:7000/oqlhelp/

有几个方法生成java堆镜像:
使用jmap -dump从运行时或者堆镜像
指定VM参数-XX:+HeapDumpOnOutOfMemoryError,当发生OutOfMemoryError会生成堆镜像。
使用hprof

注意:这个工具是实验性的,在将来的JDK中可能不支持。


OPTIONS

-stack false/true 关闭跟踪对象分配调用栈。注意,如果堆镜像中分配位置信息不可用,你不得不设置成false。默认是true。

-refs false/true    关闭跟踪对象引用。默认是true。默认情况下,back pointers(指向给定对象a.ka的引用,或者in-coming应用)适用于堆中的所有对象。

-port port-number 给jhat的HTTP服务器设置端口。默认是7000。

-exclude exclude-file 指定一个数据成员列表文件,排除可达对象查询。例如,如果文件列出 java.lang.String.value,
那么,从指定对象o中计算出的可达对象列表,只要引用路径涉及java.lang.String.value 字段将不会被考虑在内。

-baseline baseline-dump-file 指定一个基线堆镜像。两个堆中的相同对象ID将被标记为非new。其他对象标记为new。对于比较两个不同的堆镜像是有用的。

-debug int 设置debug级别。0 debug输出。设置更高级别获得更多模式。

-version 报告版本号,退出。

-h 帮助

-help 帮助

-J<flag> JVM参数


你可能感兴趣的:(jvm,工具,jhat)