CMS垃圾收集机制
物理分代
G1垃圾收集器
逻辑分代 非物理分代
G1的初始标记和并发标记和CMS类似 G1的最终标记和CMS的重新标记类似
G1和CMS解决漏标算法区别
- CMS使用增量更新
- G1使用原始快照SATB
G1有很多分区 在GC Root扫描的时候会涉及到很多的跨代扫描 所以尽量不去扫描 等下一次GC再去做 CMS就年轻代和老年代 没有那么多跨代扫描的问题
G1的筛选回收和CMS的并发清理类似 区别是G1会ST
G1为了满足用户体验 可以设置一个MaxGCPause参数 最大停顿时间 比如设置为200ms 即代表不会让三个stw的过程(初始标记、最终标记、筛选回收) gc时间不会超过200ms 怎么做到的呢? 就是在筛选回收阶段可以回收一部分垃圾对象