首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >CMS垃圾回收器设计目标和缺点

CMS垃圾回收器设计目标和缺点

作者头像
码农戏码
发布2026-06-25 19:54:25
发布2026-06-25 19:54:25
40
举报

CMS(Concurrent Mark Sweep)垃圾回收器是一种专注于减少系统暂停时间的垃圾回收器,采用的是标记清除算法,共分为四个阶段:初始标记、并发标记、重新标记和并发清理,部分阶段与用户线程并发执行,提高了系统响应能力,作用于老年代

缺点:

1、存在内存碎片:由于CMS采用标记清除算法,在垃圾回收之后会产生大量的内存碎片。CMS虽然会在经历几次标记清除算法后进行碎片整理,但整理时会暂停用户线程。

2、存在浮动垃圾:CMS垃圾回收器在并发标记和并发清理阶段由于用户线程并未停止,该阶段可能会产生浮动垃圾,无法在本次被回收,只能等到下一次垃圾回收

3、退化问题:当老年代内存不足以分配对象时,CMS会退化为Serial Old单线程串行进行垃圾回收,导致性能下降

4、线程资源争抢:在并发标记和并发清理阶段,执行垃圾回收的线程数量由系统计算出,如果CPU核数有限,会影响用户线程的执行性能,导致程序变慢

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-07-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 码农戏码 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档