jhat
分析Java堆。此命令是实验性的,不受支持。
概要
jhat [ options ] heap-dump-file
选项
命令行选项。
-stack false | true
关闭跟踪对象分配调用堆栈。如果堆转储中没有分配站点信息,则必须将此标志设置为false。默认值为true。
-refs false | true
关闭对对象引用的跟踪。默认值为true。默认情况下,将为堆中的所有对象计算后向指针,即指向指定对象的对象,例如引用程序或传入引用。
-port 端口号
设置jhatHTTP服务器的端口。默认值为7000。
-exclude exclude-file
指定一个文件,该文件列出了应从可达对象查询中排除的数据成员。例如,如果文件列出java.lang.String.value,则无论何时o计算从特定对象可访问的对象列表,java.lang.String.value都不会考虑涉及字段的引用路径。
-baseline exclude-file
指定基线堆转储。两个堆转储中具有相同对象ID的对象都标记为不是新对象。其他对象被标记为新对象。这对于比较两个不同的堆转储很有用。
-debug int
设置此工具的调试级别。级别0表示没有调试输出。为更多详细模式设置较高的值。
-version
报告发布编号并退出
-h
显示帮助消息并退出。
-help
显示帮助消息并退出。
-Jflag
传递flag到在其jhat上运行命令的Java虚拟机。例如,-J-Xmx512m使用最大堆大小为512 MB。
堆转储文件
要浏览的Java二进制堆转储文件。对于包含多个堆转储的转储文件,您可以通过# 在文件名后附加名称来指定文件中的哪个转储myfile.hprof#3。
描述
该jhat命令解析Java堆转储文件并启动Web服务器。该jhat命令使您可以使用自己喜欢的Web浏览器浏览堆转储。该jhat命令支持预先设计的查询,例如显示已知类的所有实例MyClass以及对象查询语言(OQL)。OQL与SQL相似,除了查询堆转储。可从jhat命令显示的OQL帮助页面获得OQL帮助。使用默认端口,可以从http://localhost:7000/oqlhelp /获得OQL帮助。
有几种方法可以生成Java堆转储:
- 使用该jmap -dump选项在运行时获取堆转储。参见jmap(1)。
- 使用该jconsole选项HotSpotDiagnosticMXBean在运行时获取堆转储。请参阅jconsole(1)和HotSpotDiagnosticMXBean接口说明,网址为