CS-Notes 学习笔记
Java 后端 · Java 虚拟机

CMS 和 G1 有什么区别?

先自己想一想,再看参考要点

参考要点

  • 回收范围:CMS 只回收老年代,要与 ParNew 配合,G1 用 Region 统一管理新生代和老年代
  • 碎片:CMS 用标记 - 清除,碎片多时只能 Full GC,G1 把存活对象复制到空闲的 Region,普通对象不产生碎片(Humongous 对象需要连续的 Region,可能因找不到连续空间而提前 Full GC)
  • 停顿:CMS 的停顿无法控制,G1 按停顿时间目标挑选要回收的 Region
  • 并发标记:CMS 用增量更新,G1 用原始快照(SATB)
在学习站中自测这道题看这道题所在的一天

学习站:先用面试题自评定级,按水平和面试日期排出每天的计划,自评过的题按间隔复习。免费、无需注册,记录只保存在自己的浏览器中。