1. 程式人生 > >JAVA內存泄露查詢

JAVA內存泄露查詢

ESS 執行 51cto 內存泄露 快照 相關 pac 通過 推薦

前言

當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內存泄露查詢