美文网首页
CMS垃圾回收机制

CMS垃圾回收机制

作者: BeYearn | 来源:发表于2018-12-18 16:56 被阅读0次

一. Concurrent Mark Sweep
看名字就知道,CMS是一款并发、使用标记-清除算法的gc, 存在着内存碎片化问题
CMS是针对老年代进行回收的GC。 以获取最小停顿时间为目的。
在一些对响应时间有很高要求的应用或网站中,用户程序不能有长时间的停顿,CMS 可以用于此场景。

二. CMS的执行过程

  1. 初始标记 Init-mark (STW 即 stop the world)
    该阶段进行可达性分析,标记GC ROOT能直接关联到的对象. 间接关联的对象在下一阶段标记
  2. 并发标记 Concurrent-mark
    该阶段和用户线程并发执行. 该阶段进行GC ROOT TRACING,在第一个阶段被暂停的线程重新开始运行。 由前阶段标记过的对象出发,所有可到达的对象都在本阶段中标记。
  3. 并发预处理 concurrent-preclean-start
    与下一步的重标记的工作类似. 但为了GC的最短停顿时间, 因此工作尽可能多的在并发阶段完成来减少STW的时间.
    此阶段标记从新生代晋升的对象、新分配到老年代的对象以及在并发阶段被修改了的对象。
  4. 重标记 Remark (STW)
    暂停所有用户线程,重新扫描堆中的对象,进行可达性分析,标记活着的对象。
    有了前面的基础,这个阶段的工作量被大大减轻,停顿时间因此也会减少。
    注意这个阶段是多线程的。
  5. 并发清理 concurrent-sweep-start
    用户线程被重新激活,同时清理那些无效的对象。
  6. 重置 concurrent-reset-start
    CMS清除内部状态,为下次回收做准备。

相关文章

  • HBase优化

    HBase优化 1、垃圾回收优化使用CMS垃圾回收机制2、启用压缩GZIP、Snappy、LZO,推荐Snappy...

  • 垃圾回收

    如何查看当前JVM使用的垃圾回收器? 如何指定使用CMS回收? 如何打印回收日志? 垃圾回收过程 CMS垃圾回收的...

  • 5、垃圾回收机制

    JVM的垃圾回收机制主要涉及三个方面的问题:1.JVM有哪些垃圾回收算法?各自有什么优势?2.CMS垃圾回收器是如...

  • JAVA-每日一面 2022-01-08

    问:请简述一下cms垃圾回收机制答:1、概念:CMS全称 Concurrent Mark Sweep,是一款并发的...

  • CMS垃圾回收机制

    一. Concurrent Mark Sweep看名字就知道,CMS是一款并发、使用标记-清除算法的gc, 存在着...

  • JVM垃圾回收器之CMS回收过程及优缺点

    JVM垃圾回收器之CMS回收过程及优缺点 今天给大家介绍一下CMS垃圾回收器。首先CMS是一款多线程+分段操作的一...

  • 21-看懂CMS收集器工作机制

    CMS收集器 年轻代垃圾回收器机制我们都很清楚了,接下来我们介绍最核心的老年代垃圾回收环节。 我们平时在写代码的时...

  • 最新鲜的美团现场面试41题(三面技术+HR面):Redis+Ka

    ​ 一面 hashmap与concurrenthashmap的区别 垃圾回收算法以及垃圾回收器 CMS的回收步骤 ...

  • JavaScript的垃圾回收机制

    大纲 1、认识垃圾回收机制2、垃圾回收机制的原理3、垃圾回收机制的标记策略4、垃圾回收机制与内存管理 1、认识垃圾...

  • CMS垃圾收集器

    一、新生代垃圾回收器的比较: 二、老年代垃圾回收器的比较: 四、CMS的特性 1、CMS只会回收老年代和永久代的垃...

网友评论

      本文标题:CMS垃圾回收机制

      本文链接:https://www.haomeiwen.com/subject/dyelkqtx.html