2013-05-09 58 views
2

我創建了一個堆轉儲文件,HPROF使用這個命令:jvisualvm:上卡住「加載堆轉儲」屏幕

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

這成功地創建這是5MB左右的文件「java.hprof.txt」。然後我打開jvisualvm查看這個文件,並加載它。但visualvm似乎卡在加載屏幕上。下面的屏幕現在已經上漲了大約10分鐘。

我錯過了一個步驟?我應該使用hprof在命令行上使用不同的選項嗎?我怎樣才能讀這個堆轉儲文件?

visualvm screenshot

回答

2

VisualVM的支持堆轉儲二進制HPROF格式。使用VisualVM創建堆轉儲更容易。如果這不可能使用VisualVM,則可以使用jmap -dump:live,format=b,file=heap.bin <pid>。優點是你不需要任何特殊的啓動參數,並且沒有由hprof代理庫引起的減速。

0

在我的情況下,我通過更改heapdump文件的文件權限來解決此問題。事實證明,VisualVM試圖加載文件,但權限被拒絕(這很奇怪,因爲VisualVM是創建轉儲文件的人),但VisualVM不會給你錯誤信息。我已經下載了eclipse內存分析器(https://www.eclipse.org/mat/downloads.php)。它給了我一個錯誤消息。