CMS垃圾收集器原理过程学习

CMS全称Concurrent Mark Swap ,并发标记清除。是一种以获取最短回收停顿时间为目标的收集器。

使用的GC算法:标记-清除

处理过程

初始标记~并发标记~重新标记~并发清除 

从图中可见,初始标记和重新标记阶段“stop the word”,需要暂停所用用户线程,但是时间短。

而并发标记和并发清除可以和用户线程一起工作,耗时较多。

1、初始标记

初始标记阶段,仅仅是标记GC Roots能直接关联的对象,速度很快。stop the word。

2、并发标记

并发标记阶段,实行 RC Roots 跟踪,标记RC Roots间接关联的对象。与用户线程并行。

3、重新标记

重新标记阶段,主要修正在并发标记阶段因为用户线程继续运行而导致标记记录产生变动的那一部分对象的标记记录。stop the word,时间不长。

4、并发清除 

并发清除阶段,干掉垃圾对象。与用户线程并行。

优缺点

优点:并发清理,低停顿。

缺点:

1、因为并行设计,对CPU资源很敏感。会占用部分资源,导致应用程序变慢,吞吐量下降。

2、无法清理浮动垃圾,可能出现“Concurrent Mode Failure”失败而导致另一次Full GC的产生。并发清理阶段用户线程同时在运行,这阶段产生的垃圾叫做浮动垃圾。

3、容易产生内存空间碎片。这是GC算法标记-清理的缺点所致。

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值