JVM-CMS回收器-GC日志分析


简单介绍

CMS回收器:Concurrent Mark Sweep,分代收集器,它尽可能的优化STW的时机,使GC线程与业务程序线程并行执行,令程序暂停时间大大降低;主流老年代垃圾回收器

  • CMS执行的七个阶段
    在这里插入图片描述

  • CMS GC相关JVM参数
    在这里插入图片描述如果未显式指定 GC 算法,则 JVM 将选择默认算法。在 Java 8及以前 (默认GC 算法是并行Parallel GC)。从Java 9(默认的GC算法是G1 GC)

ParNew回收器:分代收集器, 一款多线程的收集器,采用复制算法,主要工作在 Young 区,整个过程都是 STW 的,常与 CMS 组合使用。

GC日志可视化工具

GCeasy在线分析工具(本文介绍):https://gceasy.io/gc-index.jsp

GCViewer工具
简易教程:https://www.jdkdownload.com/gcviewer_tutorials.html
下载地址:https://github.com/chewiebug/GCViewer/tags

CMS GC日志解读

参考:https://cloud.tencent.com/developer/article/2031790

//jvm参数
-server
-Xms40M
-Xmx40M # 堆内存 40MB
-Xmn20M # 新生代内存 20MB
-XX:SurvivorRatio=8 # eden 区与 survive 区比例为 8:2
-verbose:gc # 在控制台输出 gc 日志
-XX:+PrintGCDetails # 输出 gc 日志详细信息
-XX:+PrintGCDateStamps # 打印日志时间
-XX:+UseConcMarkSweepGC # 启用 CMS

循环创建数组对象:alloc1 alloc2 alloc3 分别占据 4M、2M、4M ,取gc日志分析

新生代GC图解

//gc日志
2021-02-06T12:42:47.116-0800: [GC (Allocation Failure) 
//表示年轻代垃圾回收前占用从 15287KB 到回收后占用 17KB,年轻代总大小为 18432KB
2021-02-06T12:42:47.116-0800: [ParNew: 
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值