Concurrent Mark Sweep Collector是回收停顿时间比较短,它通过初始标记(Initial Mark),并发标记(Concurrent Mark),重新标记(Remark),并发清除(Concurrent Sweep)四个步骤完成垃圾回收工作,第1,3步的初始标记和重新标记依然会引发STW,而第2,4步的并发标记和并发清除两个阶段可以和应用程序并发执行,也是比较耗时的操作,但并不影响应用程序的正常执行。

      由于CMS采用的是‘标记-清除算法’,因此会产生大量的空间碎片。为了解决这个问题,CMS可以通过配置  -XX:UseCMSCompactAtFullCollection 参数,强制JVM在FGC完成后对老年代进行压缩,执行一次空间碎片整理,但是空间碎片整理也会引发STW,为了减少STW的次数,CMS还可以通过配置 -XX:CMSFullGCsBeforeCompaction=n参数,在执行了n次FGC后,JVM再在老年代执行空间碎片整理。

 

 

【学习笔记】--- CMS垃圾回收器

图片来源 https://www.cnblogs.com/frinder6/p/5491428.html 

相关文章:

  • 2021-11-28
  • 2021-11-18
  • 2022-01-03
  • 2021-09-22
  • 2022-12-23
  • 2021-10-01
  • 2021-06-01
  • 2021-09-10
猜你喜欢
  • 2021-06-20
  • 2021-09-19
  • 2021-11-16
  • 2021-11-18
  • 2021-11-18
  • 2021-09-19
相关资源
相似解决方案