Java虚拟机——CMS收集器

1:是什么

     CMS (Concurrent Mark Sweep)收集器是-种以获取最短回收停顿时间为⽬标的收集器。 ⽬前很⼤⼀部分的Java应⽤集中在互联⽹站或者B/S系统的服务端上,这类应⽤尤其重 视服务 的响应速度,希望系统停顿时间最短,以给⽤户带来较好的体验。CMS 收集器是基于标记-清除算法实现的,用户线程和垃圾线程同时执行。用户几乎感受用不到线程的暂停。也就是并发。

 

2:步骤流程

初始标记(CMS initial mark) -----标记⼀下 GC Roots 能直接关联到的对象,速度很快

并发标记(CMS concurrent mark --------并发标记阶段就是进⾏ GC RootsTracing 的过程

重新标记(CMS remark) -----------为了修正并发标记期间因⽤户程序导致标记产⽣变动的标记记录

并发清除(CMS concurrent sweep)

 3:CMS垃圾收集器缺点

CPU资源⾮常敏感

⽆法处理浮动垃圾,程序在进⾏并发清除阶段⽤户线程所产⽣的新垃圾

标记清除算法存在空间碎⽚

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章