深入解析java虚拟机:Mixed GC(混合回收)G1独有的回收策略

Mixed GC

Mixed GC(混合回收)是G1独有的回收策略,它与YGC的回收策略的区别如下:

YGC:选定所有Eden Region放入CSet,使用多线程复制算法将

CSet的存活对象复制到Survivor Region或者晋升到Old Region。

Mixed GC:选定所有Eden Region和全局并发标记计算得到的收益较高的部分Old Region放入CSet,使用多线程复制算法将CSet的存活对象复制到Survivor Region或者晋升到Old Region。

相比于YGC,Mixed GC增加了全局并发标记过程,它能够回收部分Old Region,不会再出现在CMS GC中老年代出现的碎片化问题,因为当老年代被加入CSet后,G1会使用和YGC一样的复制算法整理空间。Mixed GC的回收过程如图11-4所示。

图11-4 Mixed GC的回收过程

总结来说,Mixed GC回收周期包括全局并发标记和复制存活对象,其中复制存活对象这一步完全复用YGC代码。

SATB

谈并发垃圾回收算法必然绕不过对象丢失问题。上节提到过,在并发标记过程中,只要满足两个条件就会造成对象丢失,解决方案通常有增量更新技术和SATB。CMS GC使用增量更新技术破坏第一个条件来解决对象丢失问题,而G1使用SATB破坏第二个条件来解决对象丢失问题。

SATB会在GC开始时为对象关系打下一个快照,除了快照中存活的对象和GC过程中分配的新对象外,其他都是死亡对象。SATB的快照和GC期间新分配的对象由TAMS实现。TAMS(Top At Mark Start)是一个指针,每个Region包括Bottom、End、Top、PrevTAMS和NextTAMS指针,如图11-5所示。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值