JAVA內存泄露查詢

前言

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

生成堆轉儲信息

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

推薦自動生成的方式,由於在程序掛掉後,堆信息就不存在了,線程被破壞命令行

自動生成

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

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

jmap生成

使用jmap命令能夠輸出dump文件 code

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

分析dump文件

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

安裝jdk後,默認會安裝jvisualvm,因此只須要輸入命令,便可啓動。blog

jvisualvm

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

JAVA內存泄露查詢

相關文章
相關標籤/搜索