分析离线Java堆转储文件(.hprof)的工具或技巧

27

有没有一些工具可以对 .hprof 文件进行离线分析(包括汇总/排序/筛选)?或者你是否可以在批处理模式下运行 VisualVM,hat 等工具?

我对能够接受输入的 .hprof 文件进行数据分析并生成报告的工具很感兴趣。

我认为您需要传入一堆选项来配置报告,因此如果您知道任何有用的提示,请提供意见。

最好是可编写脚本,这样我就可以一次运行多个。


“离线”是指“无头”吗?我认为“离线”意味着“在运行的JVM实例上下文之外”。 - Mark Peters
7个回答

20

1
你能否添加命令行开关以说“离线压缩这个.hprof文件”? - user331465
2
在这个FAQ中寻找ParseHeapDump.sh(在Windows上为.bat)。链接:http://wiki.eclipse.org/MemoryAnalyzer/FAQ - Michael Brewer-Davis

14
你可以使用jhat来解析/浏览.hprof文件的内存转储。
$ jhat heapdump.hprof
Reading from heapdump.hprof...

Started HTTP server on port 7000
Server is ready.

这个工具随JDK一起提供。


2

您能使用 jmap -histo 命令吗?您希望提取何种类型的报告?


4
jmap -histo命令无法针对.hprof文件工作;它需要一个pid。 - user331465
基本上任何有助于识别内存泄漏的东西。我会说“最大的对象”——浅层和深层的都要考虑。 - user331465

2
难以超越的是yourkit java profiler。虽然需要花费一定的费用,但每一分钱都是值得的。

您是否可以批处理运行堆转储分析,并通过脚本生成报告而不是等待加载和处理呢? - user331465

1

0

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接