理解GC日志

产生GC日志的参数

  -XX:+PrintGCDetails

GC日志格式

[GC-- [PSYoungGen: 9208K->9208K(9216K)] 13481K->19440K(19456K), 0.0407458 secs] [Times: user=0.05 sys=0.01, real=0.04 secs] 
[Full GC [PSYoungGen: 9208K->0K(9216K)] [ParOldGen: 10232K->10236K(10240K)] 19440K->10236K(19456K) [PSPermGen: 2551K->2549K(21248K)], 0.2472015 secs] [Times: user=0.39 sys=0.00, real=0.25 secs]

  GC和Full GC是指回收的停顿类型,Full GC说明发生了“Stop The World”。

  “[DefNew”、“[Tenured”、“[ParmNew”、“[PSYoungGen”表示GC发生的区域此名称和使用的GC收集器有关。

    “[DefNew”:“Default New Generation”,使用Serial收集器的新生代区域

    “[ParmNew”:使用ParNew收集器的新生代区域

    “[PSYoungGen”:使用Parallel Scavenge收集器的新生代区域

  9208K -> 9208K (9216K):GC前该内存区域已使用容量 -> GC后该内存区域已使用容量 (该内存区域总容量)

  13481K -> 19440K (19456K):GC前Java堆已使用容量 -> GC后Java堆已使用容量 (Java堆总容量)

  0.0407458 secs:该内存区域GC所占用的时间,单位秒

  [Times: user=0.05 sys=0.01, real=0.04 secs]:该内存区域GC所占用的时间的详细数据,“user”,“sys”,“real”和Linux的time命令输出的时间含义一致。分别代表用户态消耗的CPU时间,内核态消耗的CPU时间,操作开始到结束经过的墙钟时间。

原文地址:https://www.cnblogs.com/BINGJJFLY/p/7615244.html