G1 GC 的 IHOP 阈值:并发标记为何过早或过晚触发
面向高并发 Java 服务,解释 G1 的 IHOP 如何决定并发标记启动时机,为什么默认 45% 在新生代占比过高或老年代增长过快时会失效,以及如何结合堆增长速率与 G1HeapWastePercent 调整阈值来避免 Full GC。
共 2 篇文章
面向高并发 Java 服务,解释 G1 的 IHOP 如何决定并发标记启动时机,为什么默认 45% 在新生代占比过高或老年代增长过快时会失效,以及如何结合堆增长速率与 G1HeapWastePercent 调整阈值来避免 Full GC。
本文聚焦 G1 GC 并发标记阶段的 SATB 队列机制,解释其如何通过写前屏障记录旧引用,保证快照一致性,避免漏标。结合高并发订单服务场景,分析 SATB 与增量更新的区别、浮动垃圾的产生,以及如何通过日志和 JFR 观察标记进度。