jstat文檔位址https://docs.oracle.com/javase/8/docs/technotes/tools/unix/jstat.html#BEHHGFAE
1、類裝載資訊
jstat -class 4431 1000 10 其中1000表示每隔1秒鐘執行一次,10表示輸出10次
-class輸出的結果中Loaded表示加載的類的個數,Bytes表示加載了多少K,Unloaded表示解除安裝的類的個數,第三個字段Bytes表示解除安裝了多少K,Time表示花費在類加載和解除安裝的時間
指令具體使用參考https://docs.oracle.com/javase/8/docs/technotes/tools/unix/index.html
2、垃圾收集資訊
參數有:-gc、-gcutil、-gccause、-gcnew、-gcold
指令舉例:jstat -gc 4431 1000 3
JDK1.8情況下-gc輸出結果的含義
S0C、S1C、S0U、S1U:S0和S1的總量與使用量
EC、EU:Eden 區總量與使用量
OC、OU:Old區總量與使用量
MC、MU:Metaspace區總量與使用量
CCSC、CCSU:壓縮類空間總量與使用量
YGC、YGCT:YoungGC的次數與時間
FGC、FGCT:FullGC的次數與時間
GCT:總的GC時間
指令具體使用同上述網址
JVM記憶體結構
JVM記憶體分為堆區和非堆區,堆區分為Young區和Old區,Yong區分為Survivor和Eden,Survivor由S0和S1組成,S0和S1一樣大,在同一時間點隻有一個是啟用的,另一個是空的。 JDK1.8非堆區Metaspace中的CCS,當我們啟用短指針的時候,就會存在CCS;CodeCache存放的是JIT的代碼資訊,也就是把Java代碼轉化為Native代碼時就存放在CodeCache中
3、JIT編譯
參數有:-compiler、-printcompilation
指令舉例:jstat -compiler 4431
-compiler輸出結果中Compiled表示完成了多少個編譯的任務 ,Failed表示失敗的,Invalid表示無效的
指令具體使用同上述網址