说说CMS GC的工作流程?

CMS(Concurrent Mark Sweep)收集器是一种以获取最短回收停顿时间 为目标的收集器。采用的是"标记-清除算法",整个过程分为4步 

(1)    初始标记 CMS initial mark    标记GC Roots直接关联的对象,不用Tracing,速度很快 //初始标记在jdk1.7中是串行 在1.8是并行 -XX:+CMSParallelInitialMarkEnabled(1.8中默认开启并行)

(2)    并发标记 CMS concurrent mark   进行GC Roots Tracing(标记可达对象的整个引用链)

(3)    重新标记 CMS remark  修改并发标记因用户程序变动的内容

(4)    并发清除 CMS concurrent sweep 清除不可达对象回收空间,同时有新垃圾产生,留着下次清理称为浮动垃圾

初始标记示意图:

说说CMS GC的工作流程?

由于整个过程中,并发标记和并发清除,收集器线程可以与用户线程一起工作,所以总体上来说,CMS收集器的内存回收过程是与用户线程一起并发地执行的。

说说CMS GC的工作流程?

 

 

上一篇:个人网站建设专业定制,个人网站建设怎么做


下一篇:Mysql:事务的四大性质及解决