随机截取一段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启动以来经历的秒数,可以认为是发生GC的相对时间。GC
表示是否暂停线程,也就是著名的Stop-The-World
, Full GC
代表发生了线程暂停。DefNew
是GC发生的内存区域,DefNew
是默认的新生代,还可能是ParNew
,Tentured
,Perm
。接下来的数字与该内存区域大小有关,格式为GC前该区域大小->GC后该区域大小(该区域总容量)。方括号外的数字与整个堆的大小有关,格式为
GC前堆大小->GC后堆大小(堆总容量)。最后是GC占用时间。
总结下来,GC日志格式为
$发生时间:[$是否STW $发生时间: [$内存区域: $该区域GC前大小->$该区域GC后大小($该区域总容量), $该区域GC耗时] $GC前堆大小->$GC后堆大小($堆总容量), $GC总耗时][$GC总耗时]
GC 基础知识可以参考 Java Garbage Collection Basics
网友评论