将大型 hprof 加载到 jhat 中

2022-09-01 17:01:19

我有一个6.5GB的Hprof文件,该文件由64位JVM使用该选项转储。我把它放在一台16GB的64位机器上,并试图把它放到jhat上,但它的内存一直不足。我尝试过传入jvm args作为最小设置,但它拒绝了任何最小值,并且在达到最大值之前似乎内存不足。-XX:-HeapDumpOnOutOfMemoryError

内存不足的jvm会转储一个如此大的堆,以至于它无法加载到具有两倍内存的盒子上,这似乎有点愚蠢。有没有办法让它运行,或者可能摊销分析?


答案 1

使用等效的 as as as 命令来启动 jhat,即,这将以 64 位模式启动 jhat,最大堆大小为 16 GB。jhat -J-d64 -J-mx16g myheap.hprof

如果平台上的 JVM 默认为 64 位模式操作,则不需要该选项。-J-d64


答案 2

我会看看eclipse memory analyzer。这个工具很棒,我已经看过几个Gig堆与这个工具。该工具的好处是它可以在转储上创建索引,因此它不会一次全部在内存中。


推荐