首頁 >Java >java教程 >Mac平台下如何分析Java堆轉儲(hprof)檔案?

Mac平台下如何分析Java堆轉儲(hprof)檔案?

PHPz
PHPz轉載
2023-04-20 23:07:072928瀏覽

使用jdk 自帶的jhat 指令

如何列印堆疊資訊到hprof檔

執行程式增加VM參數:

-XX:+HeapDumpOnOutOfMemoryError # 会打印出现内存溢出异常时,Dump出当前内存堆转存快找以便分析

#步驟1:

在命令列介面,執行以下命令,其中java_pid73912.hprof為檔案名稱

jhat java_pid73912.hprof

執行命令會輸出

Reading from java_pid73912.hprof...Dump file created Thu Apr 08 22:18:08 CST 2021Snapshot read, resolving...Resolving 818890 objects...Chasing references, expect 163 dots...................................................................................................................................................................Eliminating duplicate references...................................................................................................................................................................Snapshot resolved.Started HTTP server on port 7000Server is ready.

當看出Server is ready. 之後,可以透過ip port 位址瀏覽器訪問,我這裡是本地,所以是 localhost:7000

Mac平台下如何分析Java堆轉儲(hprof)檔案?

#點選Show instance counts for all classes (including platform)會顯示包含平台的類別的資訊

Mac平台下如何分析Java堆轉儲(hprof)檔案?

#點選Show instance counts for all classes (excluding platform)會顯示不包含平台的所有類別的資訊

Mac平台下如何分析Java堆轉儲(hprof)檔案?

可以看到我這裡佔用空間最多的類別是 class com.geniu.book.deepinJVM.chapter2.TestHeapOOM$OOMObject有超過80 萬個實例。

這樣就可以分析發生記憶體溢出時,記憶體中的物件情況,分析異常情況。

其他建議方案:

1)使用idea外掛 JProfiler

2)minidump_stackwalk 工具,可以讀取 dump 檔案

以上是Mac平台下如何分析Java堆轉儲(hprof)檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除