隨機(jī)截取一段GC日志
55442.859: [GC 55442.860: [DefNew: 421455K->2848K(471872K), 0.0186330 secs] 691020K->272414K(1176384K), 0.0189020 secs] [Times: user=0.02 sys=0.00, real=0.02 secs]
55484.830: [GC 55484.830: [DefNew: 422303K->2299K(471872K), 0.0179130 secs] 691869K->271866K(1176384K), 0.0181820 secs] [Times: user=0.02 sys=0.00, real=0.01 secs]
55523.850: [GC 55523.850: [DefNew: 421755K->2763K(471872K), 0.0191260 secs] 691322K->272330K(1176384K), 0.0194560 secs] [Times: user=0.02 sys=0.00, real=0.02 secs]
55442.859
是從JVM啟動(dòng)以來(lái)經(jīng)歷的秒數(shù)蒜田,可以認(rèn)為是發(fā)生GC的相對(duì)時(shí)間烙心。GC
表示是否暫停線程,也就是著名的Stop-The-World
, Full GC
代表發(fā)生了線程暫停乏沸。DefNew
是GC發(fā)生的內(nèi)存區(qū)域淫茵,DefNew
是默認(rèn)的新生代,還可能是ParNew
,Tentured
,Perm
蹬跃。接下來(lái)的數(shù)字與該內(nèi)存區(qū)域大小有關(guān)痘昌,格式為GC前該區(qū)域大小->GC后該區(qū)域大小(該區(qū)域總?cè)萘?。方括號(hào)外的數(shù)字與整個(gè)堆的大小有關(guān)炬转,格式為
GC前堆大小->GC后堆大小(堆總?cè)萘?辆苔。最后是GC占用時(shí)間。
總結(jié)下來(lái)扼劈,GC日志格式為
$發(fā)生時(shí)間:[$是否STW $發(fā)生時(shí)間: [$內(nèi)存區(qū)域: $該區(qū)域GC前大小->$該區(qū)域GC后大小($該區(qū)域總?cè)萘?, $該區(qū)域GC耗時(shí)] $GC前堆大小->$GC后堆大小($堆總?cè)萘?, $GC總耗時(shí)][$GC總耗時(shí)]
GC 基礎(chǔ)知識(shí)可以參考 Java Garbage Collection Basics