CMS收集器目的是为了得到最短的回收停顿时间,通过减少STW(Stop The World)的时间增加吞吐量
- 运行过程分为四步
- 初始标记
- 并发标记
- 重新标记
- 并发清除
- 使用单线程进行初始标记,此步骤需要STW
- 使用多线程进行重新标记,此步骤需要STW
- 使用标记-清除算法
- 可以和Serial收集器以及ParNew收集器结合使用
- 开启方式-XX:+UseConcMarkSweepGC
该收集器的优点是并发收集,停顿时间短,但是缺点是占用更多的CPU资源,回收后会出现内存碎片,并不是每次都会进行压缩,会占用更多的空间,并且多次标记会造成浮动垃圾无法及时清除