有如下一段GC日志:

1.最前面的數(shù)字0.059,0.086代表GC發(fā)生的時間,這個數(shù)字的含義是從Java虛擬機啟動以來經(jīng)過的秒數(shù)。
2.GC日志開頭的"[GC"和"[Full GC"說明了這次垃圾收集發(fā)生的停頓類型,而不是來區(qū)分新生代GC還是老年代GC。如果有"Full",說明這次GC是發(fā)生了STW。(Allocation Failure?– 引起垃圾回收的原因. 本次GC是因為年輕代中沒有任何合適的區(qū)域能夠存放需要分配的數(shù)據(jù)結(jié)構(gòu)而觸發(fā)的.)
3."[DefNew","[Tenured","[Perm",表示GC發(fā)生的區(qū)域,這里顯示的區(qū)域名稱與使用的GC收集器是密切相關(guān)的,例如Serial收集器中新生代名為Default New Generation,所以顯示[DefNew。如果是ParNew收集器,新生代名稱就會變?yōu)閇ParNew,意為Parallel New?Generation,如果采用Parallel Scavenge收集器,那么它配套的新生代稱為PSYoungGen,老年代和永久代同理,名稱也是有由收集器決定。
4.后面方括號內(nèi)部的384k->64k(448k),含義是“GC前該內(nèi)存區(qū)域已經(jīng)使用容量->GC后該內(nèi)存區(qū)域已經(jīng)使用容量(該內(nèi)存區(qū)域總?cè)萘?”,方括號之外的384k->266k(1048512k)表示“GC前Java堆已經(jīng)使用量->GC后Java堆已經(jīng)使用量(Java堆總?cè)萘?”
5.“0.0009127 secs”表示GC所占用的時間
6."[Times: user=0.00 sys=0.00, real=0.00 secs]" 分別表示用戶態(tài)消耗的CPU時間,內(nèi)核態(tài)消耗的CPU時間,和操作開始到結(jié)束所經(jīng)歷過的墻鐘時間。CPU時間與墻鐘時間的的區(qū)別是,墻鐘時間包含各種非運算的等待耗時,如等待磁盤I/O;但當系統(tǒng)有多CPU或者多核的話,多線程操作會疊加這些CPU時間,所以如果看到,user或sys時間超過real時間也是完全正常的。