天天看點

檢視jvm記憶體使用情況方法

1)jinfo -flags pid 查詢虛拟機運作參數資訊。

2)jinfo -flag name pid,查詢具體參數資訊。

3)jmap -heap pid:輸出堆記憶體設定和使用情況(JDK11使用jhsdb jmap --heap --pid pid)

4)jmap -histo pid:輸出heap的直方圖,包括類名,對象數量,對象占用大小

5)jmap -histo:live pid:同上,隻輸出存活對象資訊

6)jmap -clstats pid:輸出加載類資訊

7)jmap -help:jmap指令幫助資訊

8)jstat -class pid:輸出加載類的數量及所占空間資訊。

9)jstat -gc pid:輸出gc資訊,包括gc次數和時間,記憶體使用狀況(可帶時間和顯示條目參數)

10)jstat -gcutil pid millsecondinterval

11) JConsole pid

12) jcmd 1 VM.uptime 運作時長

13) jcmd 1 VM.flags 目前使用的參數 , jcmd 5296 VM.flags -all 所有參數

14) jinfo -sysprops 1 查詢所有目前的系統屬性

檢視jvm記憶體使用情況方法

對應的對象是

[C is a char[]

[S is a short[]

[I is a int[]

[B is a byte[]

[[I is a int[][]

輸出堆棧char[]占用記憶體最大,往往跟String有關,String其内部使用final char[]數組來儲存資料的。

檢視jvm記憶體使用情況方法

發現占用空間較大的對象,分析原因并處理