我们刚才设置参数的时候看到了-XX+PrintGCDetails表示输出详细的GC处理日志,那么我们如何理解这个日志呢?日志是有规则的,我们需要按照这个规则来理解日志中的内容,它有两个格式,一个格式是GC的格式(新生代),另外一个格式是FUll GC(老年代)。

GC的格式

PSYoungGen表示GC类型,2048K表示YoungGC前新生代内存占用,488K表示GC后新生代内存占用,2560K表示新生代的总大小。然后后面的2048K表示GC前堆内存占用,773K表示表示GC后堆内存的占用,9728K表示堆的总大小,0.0015243表示YoungGC耗时。

Full GC格式

Full GC,PSYoungGen(新生代区),GC前为0k,GC后为0k,young总大小为2048k
parOldGen(老年代),GC前为3767,GC后为3724,总的为7168k。GC前堆内存为3767K,GC后堆内存为3724,总的为9216K。
Metaspace(元数据区),GC前为3492K,GC后为3492,总的大小为1056768K