簡體   English   中英

將大型hprof加載到jhat中

[英]Loading a large hprof into jhat

我有一個6.5GB的Hprof文件,由64位JVM使用-XX:-HeapDumpOnOutOfMemoryError選項轉儲。 我把它放在一台16GB的64位機器上,並且我試圖將它放入jhat,但它一直在耗盡內存。 我試過傳遞jvm args以獲得最小設置,但它拒絕任何最小值,並且在達到最大值之前似乎耗盡了內存。

jvm耗盡內存會使堆積如此之大以至於無法將其加載到具有兩倍ram的盒子上,這似乎有點愚蠢。 有沒有辦法讓這個運行,或可能攤銷分析?

我會看一下eclipse內存分析器 這個工具很棒,而且我已經看過幾個帶有這個工具的Gig堆。 關於該工具的好處是它在轉儲上創建索引,因此它不會立即全部存儲在內存中。

使用等效的jhat -J-d64 -J-mx16g myheap.hprof作為啟動jhat的命令,即,這將以64位模式啟動jhat,最大堆大小為16千兆字節。

如果平台上的JVM默認為64位模式操作,則不需要-J-d64選項。

我不得不加載一個11 GB的hprof文件,而不能用eclipse內存分析器。 我最終做的是編寫一個程序,通過隨機刪除實例信息來減小hprof文件的大小。 一旦我將hprof文件的大小降低到1GB,我就可以用eclipse內存分析器打開它,並獲得導致內存泄漏的原因。

你傳遞給jhat的標志是什么? 確保您處於64位模式,並且您將堆大小設置得足夠大。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM