G1赢在吞吐、ZGC赢在延迟,二者算法设计本质对冲;用P99停顿直方图和QPS-P99散点图直观呈现差异,并结合SLA熔断点与业务场景论证选型ROI。

直接用压测生成的双维度性能曲线图说话,比讲原理更有力。关键不是堆数据,而是让面试官一眼看懂“对冲”在哪——G1赢在吞吐,ZGC赢在延迟,两者不可兼得,但选对场景就是收益。
一、准备两张核心对比图
提前用真实压测数据(比如 JDK21 + 32核64GB环境)生成以下图表,导出为高清PNG,嵌入PPT或现场共享屏幕:
- 延迟分布直方图(P99/P999 STW时长):横轴为停顿时间(ms),纵轴为发生频次。标出G1(峰值集中在120–280ms)、ZGC(95%以上落在0–10ms区间),用虚线标出SLA阈值(如50ms)。ZGC曲线整体左移、尖锐,G1右拖尾明显。
- 吞吐-延迟散点图(QPS vs P99 RT):X轴为QPS(从1万到50万递增),Y轴为P99响应时间(log scale)。每组配置画一条趋势线——G1线斜率缓但高位平台宽(高吞吐稳),ZGC线上扬极缓(RT几乎不随QPS增长),但在50万QPS时仍压在12ms内。
二、用一句话锚定“对冲”逻辑
指着图说:“G1把CPU更多留给业务执行,所以吞吐更高;ZGC把STW压缩进读屏障里并发做,所以延迟更低——这不是参数调优能抹平的差异,是算法底层设计的取舍。就像高速卡车(G1)和磁悬浮列车(ZGC),一个载得多跑得稳,一个刹得住停得准。”
三、带出你的判断依据,不是背结论
别只说“ZGC延迟低”,要结合指标解释为什么它值得为那点内存开销买单:
- 当P99 RT > 50ms触发熔断时,G1在40万QPS就抖动,ZGC撑到60万QPS仍稳定——这时ZGC的15%额外内存开销,换来了系统可用性提升,ROI明确;
- 若业务是离线ETL批处理,允许单次暂停200ms,那G1吞吐高出7–10%,GC CPU占用低5–8%,资源利用率更优。
四、补一句收口,显深度
“所以‘对冲收益’不在于哪个更好,而在于你是否清楚自己的SLA红线在哪——延迟敏感型服务,ZGC的亚毫秒确定性是刚需;吞吐密集型任务,G1的成熟度和低开销仍是首选。真正硬核的不是换回收器,是能用数据证明这次切换让哪条SLO达标了。”










