G1 GC 并发标记的 SATB 队列:快照一致性与漏标问题的工程解法
本文聚焦 G1 GC 并发标记阶段的 SATB 队列机制,解释其如何通过写前屏障记录旧引用,保证快照一致性,避免漏标。结合高并发订单服务场景,分析 SATB 与增量更新的区别、浮动垃圾的产生,以及如何通过日志和 JFR 观察标记进度。
共 2 篇文章
本文聚焦 G1 GC 并发标记阶段的 SATB 队列机制,解释其如何通过写前屏障记录旧引用,保证快照一致性,避免漏标。结合高并发订单服务场景,分析 SATB 与增量更新的区别、浮动垃圾的产生,以及如何通过日志和 JFR 观察标记进度。
本文聚焦 G1 GC 如何通过区域划分和记忆集实现并发标记与部分回收,核心问题是“在低延迟目标下,记忆集维护如何影响吞吐与内存开销”。以高并发订单服务为贯穿场景,分析记忆集数据结构、写屏障、SATB 算法及调优参数,并与 CMS 和 ZGC 对比,帮助读者根据堆大小和延迟目标选择 GC 策略。