G1 GC 并发 refinement 线程:RSet 更新的异步处理与线程数调优
高并发订单服务中,写屏障产生的跨 Region 引用更新会先进入 Dirty Card Queue,再由并发 refinement 线程异步写入 RSet。本文解释这一异步链路的完整生命周期、refinement 线程与 mutator 的竞争关系,以及 -XX:G1RefinementThreads 等参数在吞吐与停顿之间的取舍,并给出监控与排查方法。
共 2 篇文章
高并发订单服务中,写屏障产生的跨 Region 引用更新会先进入 Dirty Card Queue,再由并发 refinement 线程异步写入 RSet。本文解释这一异步链路的完整生命周期、refinement 线程与 mutator 的竞争关系,以及 -XX:G1RefinementThreads 等参数在吞吐与停顿之间的取舍,并给出监控与排查方法。
本文聚焦 G1 GC 的字符串去重功能,解释其如何通过共享字符数组降低堆内存占用,并分析并发去重线程与 SATB 的交互、哈希表维护机制,以及 -XX:+UseStringDeduplication 和 -XX:StringDeduplicationAgeThreshold 参数。读者将获得根据内存收益和 CPU 开销决定是否启用去重的判断方法。