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