我使用 jmap 转储堆内存
jmap -dump:format=b,file=test.hprof 22035
据我所知,堆转储 ascii 格式存在。但执行以下命令
jmap -dump:format=a,file=test.hprof 22035
打印了 jmap 用法。
ASCII 格式不存在?
而且我想知道堆转储二进制格式文档。谷歌搜索..没有答案,没有文档。
这是二进制格式文件的片段。
没有文本格式,只有:
-dump:<dump-options> to dump java heap in hprof binary format format=b binary format
这是有道理的,以文本格式转储 JVM 的内存会占用大量 GiB... 这个文件可以被Eclipse mat或JProfiler等堆转储分析器读取。
只需将二进制输出通过过滤器less
(具有显示控制字符的各种选项)或xxd
,默认情况下执行 hexdump 和 ASCII 转储。
不可能有真正的 ASCII 格式,因为这是二进制数据;ASCII 不包含任何设置了第 7 位的字节,这会遗漏很多重要信息。
一些文档在这里:http: //java.sun.com/developer/technicalArticles/Programming/perfanal/java.hprof.txt