前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JVM之CMS收集器

JVM之CMS收集器

作者头像
WindWant
发布2020-09-11 10:51:18
2460
发布2020-09-11 10:51:18
举报
文章被收录于专栏:后端码事后端码事

CMS(Concurrent Mark Sweep) 并发收集,低停顿,适合响应时间敏感的应用使用。

  • 初始标记 Initial mark:标记 GC Roots 能够关联到的对象。stop-the-world。
  • 并发标记 Concurrent mark:GC Roots tracing,此时业务线程仍在运行。
  • 重新标记 remark:重新标记处理并发标记过程中因为用户程序同时运行而导致标记产生变动的对象的标记记录。stop-the-world。
  • 并发清除 Concurrent sweep:清除无用对象。

初始标记和重新标记占用时间比较短。

缺点:

  • 并发阶段占用cpu资源,拖慢用户程序,降低吞吐量,CMS默认启用(CPU + 3)/4个线程执行。
  • 无法处理浮动垃圾(Floating Gorbage),并发清理阶段用户程序产生的垃圾,成为浮动垃圾,无法被当次处理。为了预留用户程序运行使用内存,CMS需在老年代一定比例时就进行收集,通过-XX:CMSInitiatingOccupancyFraction设置老年代触发CMS的堆内存使用比例。
  • 基于标记---清除算法的CMS,会使老年代产生很多空间碎片,不利于大对象的使用,使用-UseCMSCompactAtFullCollection(默认true)来设置在CMS顶不住将要进行Full GC时进行碎片压缩整理,此设置会造成停顿,同时可以设置-XX:CMSFullGCsBeforeCompaction(默认0,即每次Full GC都进行碎片整理)来设置执行碎片整理的间隔Full GC次数,即,执行多少次不压缩的Full GC后,执行一次带压缩整理的Full GC。
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-10-23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档