天天看點

jvisualvm分析jvm記憶體溢出

jvisualvm分析jvm記憶體溢出

在上文的jvisualvm隻能展現出記憶體溢出,那麼怎麼能分析出哪裡出問題了呢。

1.舉個栗子

首先我們使用這段代碼使記憶體溢出。

jvisualvm分析jvm記憶體溢出

2.dump堆日志

在發生記憶體溢出時(如果發生gc了 那麼将得不到溢出時的日志 ),點選堆 dump,會生成.hprof檔案,檢視.hprof檔案就可以分析出記憶體溢出情況。(在dump時 應用會暫停)

jvisualvm分析jvm記憶體溢出

3.安裝MAT

我們需要一個軟體檢視.hprof檔案,下載下傳網址

Eclipse Memory Analyzer Open Source Project | The Eclipse Foundation
jvisualvm分析jvm記憶體溢出

解壓後,輕按兩下可以打開。

jvisualvm分析jvm記憶體溢出

4.檢視.hprof檔案

打開上文的.hprof檔案。

jvisualvm分析jvm記憶體溢出
jvisualvm分析jvm記憶體溢出

會發現這裡有一個program。

jvisualvm分析jvm記憶體溢出

點選 See stacktrace ,會發現報錯日志,發現已經分析出有問題的地方了。

jvisualvm分析jvm記憶體溢出

繼續閱讀