分享好友 最新动态首页 最新动态分类 切换频道
CMS垃圾收集器详解(转载)
2024-12-27 02:11

CMS垃圾收集器详解(转载)

CMS全称为Concurrent Mark Sweep,即 并发标记清除,对比其他的收集器,最大的区别在于并发:在GC线程工作的时候,用户线程不会完全停止,用户线程在部分场景下与GC线程一起并发执行。但是,无论是什么垃圾收集器,Stop the world是一定无法避免的。CMS只是在部分的GC场景下可以让GC线程与用户线程并发执行。

CMS的涉及目的是为了避免【老年代GC】出现长时间的卡顿(stop the word)。

CMS主要是实现了标记清除垃圾回收算法,可分为5个步骤

  • 初始标记(STW
  • 并发标记
  • 并发预清理
  • 重新标记(STW
  • 并发清除

详细GC步骤如下

初始标记

初始标记会标记GCRoots直接关联的对象以及年轻代指向老年代的对象初始标记这个过程会发生Stop the word。但是这个阶段的速度很快,因为没有向下追溯,即只标记一层。

并发标记

这个过程不会停止用户线程(即不会发生stop the world),这一阶段主要是GC Roots向下追溯标记所有可达的对象,该阶段比较耗时,因为需要追溯

并发预处理

这个阶段主要目的就是【减少下一阶段重新标记所消耗的时间,因为下一阶段重新标记需要Stop the World.

并发标记阶段由于用户线程是没有被挂起的,所以对象有可能是发生变化的。可能有些对象,从新生代晋升到了老年代;可能有些对象,直接被分配到了老年代(大对象)。可能老年代或者新生代的对象引用发生了变化…

解决该问题就是——针对老年代的对象,可以借助类card table的存储,将老年代对象发生变化所对应的卡页标记为dirty。

所以并发预处理这个阶段会扫描可能由于并发标记时导致老年代发生变化的对象,会再扫描一边标记为dirty的卡页。

对于新生代的对象,还需要遍历新生代在并发标记过程中有没有对象引用了老年代。JVM提供了很多参数,可能在这个过程中触发一次minor GC(触发GC意味着可以更少地遍历新生代的对象

重新标记

标记那些在并发标记阶段发生变化的对象,该阶段你会Stop the world,这里停顿的时间很大程度上取决于并发预处理阶段

并发清除

该阶段不会发生stop the world用户线程一边执行,GC线程一边在回收不可达对象

注意:这个过程可能存在用户线程在不断产生垃圾,但也只能留到下一次GC进行处理,这些垃圾又称为"浮动垃圾"。

全部结束后会重置CMS算法相关的内部数据,为下一次GC循环做准备。

以上就是CMS回收垃圾的过程,其实就是把垃圾回收的过程给细分了,然后再某些阶段可以不停止用户线程,一边回收垃圾,一边处理请求,来减少每次垃圾回收时stop the word的时间。当然,中间也做了很多的优化,比如dirty card标记,中途触发minor GC等等

  1. 空间需要预留:CMS垃圾收集器可以一边回收垃圾,一边处理用户线程,那需要在这个过程中保证有充足的内存空间供用户使用。如果CMS运行过程中预留的空间不够用,会报错,这时会启动Serial Old垃圾收集器进行老年代的垃圾回收,会导致停顿的时间很长。

  2. 内存碎片问题:CMS本质上是实现了标记清除算法的收集器,这意味着会产生内存碎片,由于碎片太多,又可能导致内存空间不足所触发full GC,CMS一般会触发full GC这个过程堆碎片进行整理。整理涉及到【移动】和【标记】,这个过程肯定会stop the world,如果内存足够大,这个过程卡顿也需要一定的时间。

综合来看,使用CMS的弊端好像一个死循环

内存碎片过多,导致空间利用率降低,空间本身就需要预留给用于线程使用,现在碎片化又加剧了空间的问题,可能导致垃圾收集器降级为Serial Old,卡顿时间更长;要处理内存碎片问题,同样会卡顿。

所以,目前企业中一般都使用G1。

CMS垃圾回收器设计目的:为了避免「老年代 GC」出现「长时间」的卡顿(Stop The World

CMS垃圾回收器回收过程:初始标记、并发标记、并发预处理、重新标记和并发清除。初始标记以及重新标记这两个阶段会Stop The World

最新文章
直通车推广怎么收费,直通车推广的扣费规则
随着电商行业的飞速发展,越来越多的商家开始在各大电商平台上开设店铺,想要在竞争激烈的市场中脱颖而出,简单依靠自然流量已经远远不够。因此,许多卖家会选择使用推广工具来增加店铺的曝光率和转化率,而在淘宝平台上,直通车无疑是最为
聊城大学建筑工程学院2024年硕士研究生复试录取工作方案
根据《教育部关于印发〈2024年全国硕士研究生招生工作管理规定〉的通知》(教学[2023]2号)和《聊城大学2024年硕士研究生复试录取工作方案》的相关要求,结合学院实际,现将我院2024年硕士研究生招生考试复试相关工作安排如下:一、组织领
粉丝必看!如何设计一个吸睛的Logo?AI免费神器让你的专业形象更出众
还在找人花钱做logo设计?当然这里申明下,小编还是建议大家尊重设计劳动力尽量选择付费不过小编就是喜欢免费的,今天就给大家带来一个免费在线生成LOGO的工具。工具名称:搜狐简单AI工具地址https://ai.sohu.com/pc/generate/textToImg?030
浙马纪录挑战赛 |2024第五届浙马纪录挑战赛竞赛规程!
2024第五届浙马纪录挑战赛竞赛规程一、组织单位主办单位:临平区人民政府、浙江省马拉松及路跑协会 承办单位:临平区文化和广电旅游体育局、杭州雁渡寒潭体育运动俱乐部 协办单位:浙江黄龙体育文化培训有限公司、杭州电视台青少•体育频道
利用YouTube玩转独立站营销和SEO
YouTube是世界最大的社交平台之一,也是世界第二大的搜索引擎和世界最大的视频网站。虽然网络上能找到很多关于优化YouTube视频创作和频道运营的教程,但是如何利用YouTube来使您的网站实际受益呢?以下8点建议将会帮助你! 接下来,我们会
选品时如何评估竞争热度:搜索量多少算是竞争不激烈?
讲到选品时,我总是反复强调,除非你家大业大资金雄厚运营彪悍,否则,一定要选择偏冷门的产品。 那什么才算是偏冷门的产品呢? 为了让选品更有针对性、可量化,我专门给出建议:选择Best Seller日销量在50-150单的产品。 这样的产品,大卖
正则表达式(awk、sort 、uniq 、tr 工具)
awk 选项 ‘模式或条件{编辑命令}’ 文件1 文件2…. //过滤并输出文件中符合条件的内容 awk -f 脚本文件 文件1 文件2… //从脚本中调用的编辑指令,过滤并输出内容 awk包含几个特殊的内建变量(可直接用)如下所示࿱
限地区: Apple 苹果AI笔记本电脑 2023Mac mini迷你主机 M28G 256G (实测成都等地有效),2785.21元
新款 Mac mini 搭载 M2 和 M2 Pro 芯片,搭载 M2 芯片的机型:M2 芯片具有 4 个性能核心和 4 个能效核心,10 核图形处理器,16 核神经网络引擎,100GB/s 内存带宽;支持 H.264、HEVC、ProRes 和 ProRes RAW 硬件加速,带有视频解码引擎、视
苹果id贷怎么申请—100%下款+苹果回租id贷24小时
苹果id贷怎么申请—100%下款+苹果回租id贷24小时上汽集团等在嘉兴成立股权投资合伙企业,出资额3亿天眼查App显示,近日,嘉兴屹晨股权投资合伙企业(有限合伙)成立,执行事务合伙人为上海上汽恒旭投资管理有限公司,出资额约3亿人民币,经
【U90(Kiss初恋版)WiFi万能钥匙下载】天语U90 Kiss初恋版WiFi万能钥匙5.1.02免费下载
下载WiFi万能钥匙,认准官方正版!免费安全WiFi热点,无忧一键连接。日常任务随时做,轻松赚现金外快~【积分赚钱】完成简单日常任务,轻轻松松赚现金【安全免费】随时随地免费连接,畅享安全免费WiFi,节省流量快人一步!【权威认证】通过
相关文章
推荐文章
发表评论
0评