jvisualvm:坚持“加载堆转储”屏幕

时间:2013-05-09 12:11:38

标签: java visualvm jvisualvm hprof

我使用此命令使用hprof创建了一个堆转储文件:

java -agentlib:hprof -cp "..\..\jars\trove.jar;.\bin" com.mysite.MyApp

这成功创建了大约5MB的文件“java.hprof.txt”。然后我打开jvisualvm来查看这个文件,并加载它。但是visualvm似乎卡在加载屏幕上。下面的屏幕现在已经持续了大约10分钟。

我错过了一步吗?我应该在命令行中使用hprof使用不同的选项吗?如何读取此堆转储文件?

visualvm screenshot

2 个答案:

答案 0 :(得分:2)

VisualVM支持二进制HPROF格式的堆转储。使用VisualVM创建堆转储更容易。如果无法使用VisualVM,则可以使用jmap -dump:live,format=b,file=heap.bin <pid>。优点是您不需要任何特殊的启动参数,并且hprof代理库不会导致速度减慢。

答案 1 :(得分:0)

在我的情况下,我通过更改heapdump文件的文件权限解决了这个问题。事实证明VisualVM试图加载文件但是权限被拒绝(这很奇怪,因为VisualVM是创建转储文件的人),但是VisualVM不会给你错误信息。我已经下载了eclipse内存分析器(https://www.eclipse.org/mat/downloads.php)。它给了我一个错误信息。