我使用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
,具有各种控制字符显示选项)或默认执行十六进制转储和 ASCII 转储的xxd
进行处理。
由于这是二进制数据,因此不存在真正的 ASCII 格式;ASCII 不包括任何带有第 7 位设置的字节,这将遗漏许多重要信息。
这里有一些文档:http://java.sun.com/developer/technicalArticles/Programming/perfanal/java.hprof.txt