JAVA內存泄露查詢

前言

當JAVA程序遇到OutOfMemory,或者遇到內存佔用升高的情況時,可以使用jmap生成堆dump文件,看是否有內存泄露。
下邊是具體步驟。

生成堆轉儲信息

生成dump文件有兩種方式,一種是在出現錯誤時,自動dump堆信息,另外一種是使用命令行生成。

推薦自動生成的方式,因爲在程序掛掉後,堆信息就不存在了,線程被破壞

自動生成

通過一些JVM參數讓虛擬機在內存溢出時自動dump出快照文件

參數 說明
-XX:+HeapDumpOnOutOfMemoryError 內存溢出時自動導出內存快照
-XX:HeapDumpPath=/workspace/dumps/ dump文件路徑

jmap生成

使用jmap命令可以輸出dump文件

jmap -dump:format=b,file=/workspace/dumps/jmap.hprof 10245

分析dump文件

使用jvisualvm分析dump文件,有圖形界面,直觀方便。

安裝jdk後,默認會安裝jvisualvm,所以只需要輸入命令,即可啓動。

jvisualvm

執行命令,會打開jvisualvm界面,點擊[文件]->[裝入]打開界面,可以直觀看到相關統計信息。

JAVA內存泄露查詢

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章