CMS垃圾收集器
-
图解
-
简介
CMS (Concurrent Mark Sweep)收集器是-种以获取最短回收停顿时间为⽬标的收集器。
⽬前很⼤⼀部分的Java应⽤集中在互联⽹站或者B/S系统的服务端上,这类应⽤尤其重 视服务的响应速度,希望系统停顿时间最短,以给⽤户带来较好的体验。
CMS 收集器是基于“标记-清除”算法实现的
- 步骤流程:
初始标记(CMS initial mark) 标记⼀下 GC Roots 能直接关联到的对象,速度很快
并发标记(CMS concurrent mark) 并发标记阶段就是进⾏ GC RootsTracing 的过程
重新标记(CMS remark) 为了修正并发标记期间因⽤户程序导致标记产⽣变动的标记记录
并发清除(CMS concurrent sweep)
- 缺点
对CPU资源⾮常敏感
⽆法处理浮动垃圾,程序在进⾏并发清除阶段⽤户线程所产⽣的新垃圾
标记-清除暂时空间碎⽚