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资源⾮常敏感
  • ⽆法处理浮动垃圾,程序在进⾏并发清除阶段⽤户线程所产⽣的新垃圾
  • 标记-清除暂时空间碎⽚