一、heap
命令:jmap -heap pid
描述:顯示Java堆詳細信息正則表達式
二、histo[:live]
命令:jmap -histo:live pid
描述:顯示堆中對象的統計信息
ide
三、dump:<dump-options>
命令:jmap -dump:format=b,file=heapdump.phrof pid
描述:生成堆轉儲快照dump文件。工具
以hprof二進制格式轉儲Java堆到指定filename的文件中。live子選項是可選的。若是指定了live子選項,堆中只有活動的對象會被轉儲。3d
Histogram,可列出每個類的實例數,支持正則表達式查找,也能夠計算出該類全部對象的retained size。orm
Shallow Heap就是對象自己佔用內存的大小,不包含其引用的對象內存,實際分析中做用不大。對象
Retained Heap值的計算方式是將RSet(當該對象被回收時那些將被GC回收的對象集合)中的全部對象大小疊加。或者說,由於X被釋放,致使其它全部被釋放對象(包括被遞歸釋放的)所佔的heap大小。blog
一、選擇一個Class,右鍵選擇List objects > with incoming references,在新頁面會顯示經過這個class建立的對象信息。
二、而後再選擇一個對象,右鍵選擇Path to GC Roots > ****,一般在排查內存泄漏的時候,咱們會選擇exclude all phantom/weak/soft etc.references,意思是查看排除虛引用/弱引用/軟引用等的引用鏈,也就是強引用鏈。遞歸
Leak Suspects 界面提示可能存在內存的泄露。
比方說大對象:
內存
經過Details能夠查看具體問題的詳情!it