第231天学习打卡(知识点回顾 CMS 并发标记清除)

知识点回顾

CMS(并发标记清除)

CMS收集器(Concurrent Mark Sweep): 并发标记清除)是一种以获取最短回收停顿时间为目标的收集器。

适合应用在互联网或者B/S系统的服务器上,这类应用尤其重视服务器的响应速度,希望系统停顿时间最短。CMS非常适合堆内存大、CPU核数多的服务器端应用,也是G1出现之前大型应用的首选收集器。

Concurrent Mark Sweep 并发标记清除,并发收集低停顿,并发指的是与用户线程一起执行。

开启该收集器的JVM参数:-XX:+UseConcMarkSweepGC 开启该参数后会自动将-XX:+UseParNewGC打卡

开启参数后,使用ParNew(Young区用)+CMS(Old区用)+Serial Old的收集器组合,Serial Old将作为CMS出错的后备收集器。

CMS四个过程:

  • 初识标记:只是标记一下GC Roots能直接关联的对象,速度快,仍然需要暂停所有的工作线程
  • 并发标记和用户线程一起: 进行GC Roots跟踪的过程,和用户线程一起工作,不需要暂停工作线程。主要标记过程,标记全部对象。
  • 重新标记: 为了修正在并发标记期间,因用户程序继续运行而导致标记产生变动的那一部分对象的标记记录,仍然需要暂停所有的工作线程。由于并发标记时,用户线程依然运行,因此正式清理前,再b做修正。
  • 并发清除和用户线程一起:清除GC Roots不可达对象,和用户线程一起,不需要暂停工作线程。基于标记结果,直接清理对象。 由于耗时最长的并发标记和并发清除过程中,垃圾收集线程可以和用户线程一起并发工作,所以总体上看CMS收集器的内存回收和用户线程一起并发执行。

优点: 并发收集低停顿。

缺点: 并发执行,对CPU资源压力大, 采用的标记清除算法会导致大量碎片。

B站:尚硅谷Java大厂面试题第二季(java面试必学,周阳主讲)_哔哩哔哩_bilibili

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值