1. 程式人生 > >Java-性能調優-理解GC日誌

Java-性能調優-理解GC日誌

times pla div 區別 開始 cat code you 區域

1 2 3 4 [ ~]# cat gc.log.0 | grep ‘Full GC‘ 1.652: [Full GC (System) 1.652: [CMS: 0K->21718K(262144K), 0.0837910 secs] 48398K->21718K(458752K), [CMS Perm : 16462K->16457K(21248K)], 0.0841650 secs] [Times: user=0.08 sys=0.00, real=0.08 secs] 664643.879: [GC 664643.879: [ParNew: 134434K->3202K(196608K),
0.0068030 secs] 327839K->196659K(458752K) icms_dc=0 , 0.0070080 secs] [Times: user=0.03 sys=0.00, real=0.01 secs]

1.625, 664643.879為GC發生的時間,從Java虛擬機啟動以來經過的秒數。

“[GC” 和 “[Full GC” 表示GC停頓類型,而不是區分新生代GC和老年代GC.

Full GC會發生Stop-The-World(STW)。如果調用System.gc()觸發的Full GC,會顯示“[Full GC(System)”  

[DefNew、[Tenured、[Perm表示GC發生的區域:

[DefNew:Serial收集器中新生代

[ParNew:ParNew收集器新生代

[PSYoungGen:Parallel Scanvenge收集器新生代

[CMS:CMS收集器老年代

[Tenured:Serial收集器老年代

[Perm,[CMS Perm:永久代

1 134434K->3202K(196608K) 含義: “GC前內存區已使用容量->GC後內存區已使用容量(該內存區域總容量)”
1 [Times: user=0.03 sys=0.00, real=0.01 secs] 含義:user,sys,real分別表示用戶消耗CPU時間、內核消耗CPU時間、操作從開始到結束所經過的墻鐘時間(wall clock time)<br>CPU時間與墻鐘時間的區別:墻鐘時間包括各種非運算等待時間,如IO阻塞等待,而CPU不包括這些時間。

Java-性能調優-理解GC日誌