Java GC日志解析

jvm启动时增加以下参数,可以输出日志到指定目录中:
-XX:+PrintGCDetails -Xloggc:F:\gc1.log

1.578: [GC (Allocation Failure) [PSYoungGen: 98304K->8374K(114688K)] 98304K->8454K(245760K), 0.0090852 secs] [Times: user=0.05 sys=0.00, real=0.01 secs] 
1.925: [GC (Allocation Failure) [PSYoungGen: 106678K->12068K(114688K)] 106758K->12156K(245760K), 0.0089248 secs] [Times: user=0.00 sys=0.00, real=0.01 secs] 
1.973: [GC (Metadata GC Threshold) [PSYoungGen: 20423K->7497K(114688K)] 20511K->7593K(245760K), 0.0056872 secs] [Times: user=0.00 sys=0.00, real=0.01 secs] 
1.978: [Full GC (Metadata GC Threshold) [PSYoungGen: 7497K->0K(114688K)] [ParOldGen: 96K->7462K(131072K)] 7593K->7462K(245760K), [Metaspace: 20767K->20767K(1069056K)], 0.0377837 secs] [Times: user=0.09 sys=0.00, real=0.04 secs] 
2.403: [GC (Allocation Failure) [PSYoungGen: 98304K->7905K(114688K)] 105766K->15375K(245760K), 0.0048318 secs] [Times: user=0.01 sys=0.00, real=0.00 secs] 
2.813: [GC (Allocation Failure) [PSYoungGen: 106209K->12724K(114688K)] 113679K->20202K(245760K), 0.0070188 secs] [Times: user=0.06 sys=0.00, real=0.01 secs] 

解读:
GC日志分析:
1、最前面的数字 “1.578” 代表从JVM启动到发生GC的时间

2、GC日志开头的“[GC 和 [Full GC” 说明了这次垃圾收集的停顿类型,而不是用来区分新生代GC还是年老代GC的。Allocation Failure(空间不足)和Metadata GC Threshold(元空间不足)说明发生GC的原因

3、PSYoungGen, ParOldGen,PSPermGen表示GC发生的区域,这里显示的区域名称与使用的GC收集器密切相关,不同收集器对于不同区域所显示的名称可能不同。

4、98304K->8374K(114688K) 含义:
GC前该内存区域已使用容量 -> GC后该内存区域已使用容量(该内存区域总容量)
98304K->8454K(245760K) 含义:
GC前java堆已使用容量 -> GC后java堆已使用容量(Java堆总容量)

5、0.0090852 secs 表示该内存区域GC所占用的时间,单位是秒。

6、[Times: user=0.00 sys=0.00, real=0.00 secs]
用户消耗的CPU时间,内存态消耗的CPU时间,和操作从开始到结束所经过的墙钟时间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西瓜加冰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值