當JAVA程序遇到OutOfMemory,或者遇到內存佔用升高的狀況時,能夠使用jmap生成堆dump文件,看是否有內存泄露。
下邊是具體步驟。 ide
生成dump文件有兩種方式,一種是在出現錯誤時,自動dump堆信息,另一種是使用命令行生成。spa
推薦自動生成的方式,由於在程序掛掉後,堆信息就不存在了,線程被破壞命令行
經過一些JVM參數讓虛擬機在內存溢出時自動dump出快照文件 線程
參數 | 說明 |
---|---|
-XX:+HeapDumpOnOutOfMemoryError | 內存溢出時自動導出內存快照 |
-XX:HeapDumpPath=/workspace/dumps/ | dump文件路徑 |
使用jmap命令能夠輸出dump文件 code
jmap -dump:format=b,file=/workspace/dumps/jmap.hprof 10245
使用jvisualvm分析dump文件,有圖形界面,直觀方便。orm
安裝jdk後,默認會安裝jvisualvm,因此只須要輸入命令,便可啓動。blog
jvisualvm
執行命令,會打開jvisualvm界面,點擊[文件]->[裝入]打開界面,能夠直觀看到相關統計信息。內存