JVM除錯工具使用效果
1、jps VM程序監控
D:\commonsoft\jdk\jdk1.7.0_x64\bin>jps -l 34416 sun.tools.jps.Jps 35980 32016 com.roncoo.education.SpringBootDemo21Application
D:\commonsoft\jdk\jdk1.7.0_x64\bin>jps -v 啟動時候JVM引數 35980 -Dosgi.requiredJavaVersion=1.6 -Xms256m -Xmx1024m -vm D:/commonsoft/jdk/jdk1.7.0_45/bin/javaw.exe -XX:MaxPermSize=256m 28500 Jps -Dapplication.home=D:\commonsoft\jdk\jdk1.7.0_x64 -Xms8m 32016 SpringBootDemo21Application -Dfile.encoding=UTF-8
D:\commonsoft\jdk\jdk1.7.0_x64\bin>jps -m 啟動Main函式引數 35980 32016 SpringBootDemo21Application 29864 Jps -m
2、Jstat VM統計監控資訊
-gc 監視java堆情況,包含Eden區,兩個Survivor區,老年代,永久代等 已經空間和GC時間
-gcutil同上,主要輸出關注的已經使用空間和總空間佔比。
D:\commonsoft\jdk\jdk1.7.0_x64\bin>jstat -gc 35980 200 2 S0C S1C S0U S1U EC EU OC OU PC PU YGC YGCT FGC FGCT GCT 22016.0 4608.0 0.0 4531.7 75264.0 61248.5 239616.0 105126.8 137728.0 105855.2 33 0.582 13 5.335 5.916 22016.0 4608.0 0.0 4531.7 75264.0 61248.5 239616.0 105126.8 137728.0 105855.2 33 0.582 13 5.335 5.916
S0C 第一個倖存者區的總大小 S1C 第二個倖存者區的總大小
S0U第一個倖存者區的已使用的大小 S1U第二個倖存者區的已使用的大小
EC 伊甸區的總大小 EU 伊甸區已使用的大小 以上的屬於新生代(Young)。
OC 老年區的總大小 OU 老年區已使用的大小 以上的屬於老年代(Old)。
MC 方法區的總大小 MU 方法區已使用大小
CCSC壓縮類總大小 CCSU 壓縮類已使用大小 以上的屬於永久代(Perm)。
YGC young gc次數 YGCT young gc總時間
FGC full gc 次數 FGCT full gc 總時間 GCT gc的總時間
D:\commonsoft\jdk\jdk1.7.0_x64\bin>jstat -gcutil 35980 200 2 S0 S1 E O P YGC TYGC FGC FGCT GCT 73.01 0.00 4.10 43.87 76.86 34 0.595 13 5.335 5.929 73.01 0.00 4.10 43.87 76.86 34 0.595 13 5.335 5.929
S0和S1分別表示Survivor0和Survivor1區,E:eden區,O:老年代,P:永久代
YGC:Minor GC, 表示YoungGc 34次, GCT :表示YGC總耗時5.929秒。
FGC :Full Gc 表示發生 13, FGCT:full gc time, 總耗時 5.335 秒
D:\commonsoft\jdk\jdk1.7.0_x64\bin>
-class (類載入器) -compiler (JIT) -gc (GC堆狀態) -gccapacity (各區大小)
-gccause (最近一次GC統計和原因) - gcnew (新區統計) -gcnewcapacity (新區大小) -gcold (老區統計) -gcoldcapacity (老區大小) -gcpermcapacity (永久區大小) -gcutil (GC統計彙總) -printcompilation (HotSpot編譯統計) 1、jstat –class<pid> : 顯示載入class的數量,及所佔空間等資訊。
Loaded 裝載的類的數量 Bytes 裝載類所佔用的位元組數
Unloaded 解除安裝類的數量 Bytes 解除安裝類的位元組數 Time 裝載和解除安裝類所花費的時間
2、jstat -compiler <pid>顯示VM實時編譯的數量等資訊。
Compiled 編譯任務執行數量 Failed 編譯任務執行失敗數量
Invalid 編譯任務執行失效數量 Time 編譯任務消耗時間
FailedType 最後一個編譯失敗任務的型別 FailedMethod 最後一個編譯失敗任務所在的類及方法