十三、分析 GC 日志

【目录】 【上一篇:JVM 运行时参数】

十三、分析 GC 日志

GC 日志分析


GC 分类:

针对HotSpot VM的实现,它里面的GC按照回收区域又分为两大种类型:一种是部分收集(Partial GC),一种是整堆收集(Full GC)
参见:5、Minor GC、Major GC、Full GC详解

💡 内存分配与垃圾回收的参数列表
-XX:+PrintGC:输出 GC 日志(或 -verbose:gc);
-XX:+PrintGCDetails:输出 GC 详细日志;
-XX:+PrintGCTimeStamps:输出 GC 的时间戳
-XX:+PrintGCDateStamps:输出 GC 的时间戳(以日期形式)
-XX:+PrintHeapAtGC:在进行 GC 的前后打印出堆的信息
-Xloggc:…/logs/gc.log:日志文件的输出路径

日志分析工具:GCViewer、GCEasy

建议用 GCEasy

日志分析:

-XX:+PrintGC:输出 GC 日志(或 -verbose:gc)


-verbose:gc -XX:+PrintGCDetails


在这里插入图片描述

-verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStmps


-verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStmps

  • “[ GC” 和 “[ Full GC” 表示这次垃圾收集的停顿类型,如果有 Full GC 说明发生了 STW;
  • 使用 Serial 收集器在新生代的名字是 Default New Generation,因此显示的是 “[ DefNew ”
  • 使用 ParNew 收集器在新生代显示的是 “[ ParNew ”
  • 使用 Parallel Scavenge 收集器在新生代显示的是 “[ PSYoungGen”
  • 老年代的收集和新生代道理一样,名字也是收集器决定的;
  • 使用 G1 收集器的话,会显示 ”garbage - first heap”
  • Allocation Failure:表明本次引起 GC 的原因是因为在年轻代中没有足够的空间能够存储新的数据
  • [PSYoungGen:5986K → 696K(8704K)] 5986K → 704K(9216K):
    • 中括号内:GC 回收前年轻代大小 → 回收后大小 (年轻代总大小)
    • 括号外:GC 回收前年轻代和老年代大小 → 回收后大小(年轻代和老年代总大小)
  • user 代表用户态回收耗时,sys 内核态回收耗时,rea 实际耗时。由于多核的原因,实际总和可能会超过 real 时间
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
【目录】 【上一篇:JVM 运行时参数】

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值