<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Java | 有志者事竟成</title><link>https://www.liwenshen.com/tags/java/</link><atom:link href="https://www.liwenshen.com/tags/java/index.xml" rel="self" type="application/rss+xml"/><description>Java</description><generator>Hugo Blox Builder (https://hugoblox.com)</generator><language>zh</language><lastBuildDate>Sat, 06 Dec 2025 00:25:24 +0800</lastBuildDate><image><url>https://www.liwenshen.com/media/icon_hu_dd5d76fef920c49e.png</url><title>Java</title><link>https://www.liwenshen.com/tags/java/</link></image><item><title>Java垃圾回收：如何正确选择GC收集器【演讲摘要】</title><link>https://www.liwenshen.com/note/java-choosing-the-correct-collector/</link><pubDate>Sat, 06 Dec 2025 00:25:24 +0800</pubDate><guid>https://www.liwenshen.com/note/java-choosing-the-correct-collector/</guid><description>&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/2Obf2LqEvyk?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;演讲者&lt;/strong&gt;：Oracle Java平台组 Stefan Johansson（20年Java平台经验，12年GC领域经验）&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="核心主题"&gt;&lt;strong&gt;核心主题&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;选择合适的GC收集器&lt;/strong&gt;，强调升级Java版本和根据应用场景选择GC的重要性。&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="一垃圾回收基础"&gt;&lt;strong&gt;一、垃圾回收基础&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;三大评估维度：&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;吞吐量&lt;/strong&gt;：单位时间完成的事务数
&lt;ul&gt;
&lt;li&gt;影响因素：并发GC工作、GC暂停时间、读写屏障效率&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;延迟&lt;/strong&gt;：单次事务响应时间
&lt;ul&gt;
&lt;li&gt;影响因素：GC暂停、应用线程执行的GC工作、分配停顿、大对象分配&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;内存占用&lt;/strong&gt;：GC算法本身的开销
&lt;ul&gt;
&lt;li&gt;影响因素：GC所需 native 内存、CPU资源消耗&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;核心机制：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;TLAB&lt;/strong&gt;: 线程本地分配缓冲区，实现快速指针碰撞分配&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;权衡本质&lt;/strong&gt;：吞吐量与延迟不可兼得，低延迟需要并发GC，但会消耗更多CPU资源&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id="二openjdk五大收集器对比"&gt;&lt;strong&gt;二、OpenJDK五大收集器对比&lt;/strong&gt;&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;收集器&lt;/th&gt;
&lt;th&gt;特点&lt;/th&gt;
&lt;th&gt;适用场景&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Serial&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;最低native内存开销&lt;/td&gt;
&lt;td&gt;小型容器&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Parallel&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;最佳吞吐量&lt;/td&gt;
&lt;td&gt;可接受长暂停的批处理任务&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;G1&lt;/strong&gt; (JDK9+默认)&lt;/td&gt;
&lt;td&gt;平衡吞吐量/延迟/内存占用&lt;/td&gt;
&lt;td&gt;长期运行的服务&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;ZGC&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;超低延迟(&amp;lt;1ms)，支持16TB堆&lt;/td&gt;
&lt;td&gt;低延迟要求的应用&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Shenandoah&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;并发低延迟&lt;/td&gt;
&lt;td&gt;类似ZGC场景&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Oracle重点维护&lt;/strong&gt;：&lt;strong&gt;G1&lt;/strong&gt; 和 &lt;strong&gt;ZGC&lt;/strong&gt;（资源集中投入）&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="三g1收集器深度解析"&gt;&lt;strong&gt;三、G1收集器深度解析&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;核心目标：&lt;/strong&gt; 平衡性能，避免最坏情况延迟，通过&lt;strong&gt;混合收集&lt;/strong&gt;分散Full GC压力&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;演进历程（JDK8→25）：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;JDK9&lt;/strong&gt;: 成为默认GC（当时性能尚不成熟）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;JDK11&lt;/strong&gt;: 降低native内存使用（1.3GB→更低），引入并行Full GC&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;JDK17&lt;/strong&gt;: 降低暂停时间，继续优化内存&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;JDK21&lt;/strong&gt;: &lt;strong&gt;重大改进&lt;/strong&gt; - 移除第二个标记位图，native内存降至440MB（16GB堆场景）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;JDK25&lt;/strong&gt;: 可扩展性改进，&lt;strong&gt;屏障优化&lt;/strong&gt;（未正式发布，即将推出），吞吐量接近Parallel&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;性能数据（16GB堆）：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;暂停时间&lt;/strong&gt;：JDK25平均70ms，最坏情况显著改善&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;内存占用&lt;/strong&gt;：JDK8需1.3GB额外内存 → JDK25仅需440MB&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;调优参数：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;唯一核心参数：&lt;code&gt;-XX:MaxGCPauseMillis&lt;/code&gt;（默认200ms）
&lt;ul&gt;
&lt;li&gt;调低（如50ms）：提升延迟，增加GC频率&lt;/li&gt;
&lt;li&gt;调高：提升吞吐量&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id="四zgc收集器深度解析"&gt;&lt;strong&gt;四、ZGC收集器深度解析&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;核心目标：&lt;/strong&gt; &lt;strong&gt;始终低于1ms暂停&lt;/strong&gt;，支持超大堆（16TB）&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;演进历程：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;JDK11&lt;/strong&gt;: 实验性特性（Linux only），目标&amp;lt;10ms&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;JDK15&lt;/strong&gt;: 生产就绪，支持多平台&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;JDK17&lt;/strong&gt;: 达成&lt;strong&gt;亚毫秒级暂停&lt;/strong&gt;（~200μs），极简化配置&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;JDK21&lt;/strong&gt;: 引入&lt;strong&gt;分代模式&lt;/strong&gt;（&lt;code&gt;-XX:+ZGenerational&lt;/code&gt;），显著提升吞吐量&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;JDK25&lt;/strong&gt;: 分代模式成为唯一模式，优化大堆场景&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;关键特性：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;分代模式&lt;/strong&gt;：大幅提升分配速率承受能力，避免分配停顿&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;易用性&lt;/strong&gt;：几乎零配置（仅需设置堆大小），自动调优&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;适用性&lt;/strong&gt;：&lt;strong&gt;不仅限于大堆&lt;/strong&gt;，1GB堆起步，取决于分配速率&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;性能数据：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;暂停时间&lt;/strong&gt;：分代模式下**~100μs**（0.1ms）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;吞吐量&lt;/strong&gt;：分代模式比非分代提升显著&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id="五gc调优实践指南"&gt;&lt;strong&gt;五、GC调优实践指南&lt;/strong&gt;&lt;/h3&gt;
&lt;h4 id="1-基本原则"&gt;&lt;strong&gt;1. 基本原则&lt;/strong&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;避免过度调优&lt;/strong&gt;：现代GC（G1/ZGC）已高度自动化&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;重新审视旧参数&lt;/strong&gt;：旧参数可能在新GC上产生负面效果
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;示例&lt;/em&gt;：手动设置年轻代大小会干扰G1的自适应策略&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;对比测试&lt;/strong&gt;：至少测试G1和ZGC，全面评估吞吐量/延迟/资源消耗&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="2-堆大小设置xxi"&gt;&lt;strong&gt;2. 堆大小设置（XXI）&lt;/strong&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;默认&lt;/strong&gt;：最大堆为系统内存的25%&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;关键原则&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;G1：避免Full GC（增大堆）&lt;/li&gt;
&lt;li&gt;ZGC：避免分配停顿（增大堆）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;未来方向&lt;/strong&gt;：&lt;strong&gt;自动堆大小调整&lt;/strong&gt;（开发中），根据系统负载动态调整&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="3-低层优化"&gt;&lt;strong&gt;3. 低层优化（&amp;ldquo;免费午餐&amp;rdquo;）&lt;/strong&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;大页（Huge Pages）&lt;/strong&gt;：Linux上可提升~10%性能
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;显式大页&lt;/strong&gt;（HugeTLB）：需预配置，行为确定&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;透明大页&lt;/strong&gt;（THP）：动态但可能碎片化，新版内核表现良好&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;注意&lt;/strong&gt;：G1使用匿名内存（默认&lt;code&gt;always&lt;/code&gt;），ZGC使用共享内存（默认&lt;code&gt;never&lt;/code&gt;），需统一配置&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;紧凑对象头&lt;/strong&gt;（JDK25+ &lt;code&gt;-XX:+CompactObjectHeaders&lt;/code&gt;）：
&lt;ul&gt;
&lt;li&gt;对象头从12/16字节 → 8字节&lt;/li&gt;
&lt;li&gt;显著减少堆占用 → 更少GC → 更高吞吐量&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;NUMA支持&lt;/strong&gt;：ZGC默认开启，G1需手动启用（&lt;code&gt;-XX:+UseNUMA&lt;/code&gt;）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;预触摸内存&lt;/strong&gt;：&lt;code&gt;-XX:+AlwaysPreTouch&lt;/code&gt;（配合固定堆），避免首次访问延迟&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id="六监控与验证"&gt;&lt;strong&gt;六、监控与验证&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;JDK内置工具：&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;JVM日志&lt;/strong&gt;：&lt;code&gt;-Xlog:gc*&lt;/code&gt;（详细GC日志）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Flight Recorder (JFR)&lt;/strong&gt; + &lt;strong&gt;JDK Mission Control&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;查看暂停时间统计、分配停顿、CPU/内存占用&lt;/li&gt;
&lt;li&gt;关键视图：&lt;code&gt;jfr view gc-pauses&lt;/code&gt;, &lt;code&gt;jfr view native-memory&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;核心指标：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;延迟&lt;/strong&gt;：应用级响应时间（首选）或GC暂停时间统计&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ZGC专项&lt;/strong&gt;：必须检查分配停顿（Allocation Stall）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;资源&lt;/strong&gt;：OS级监控 + JVM native内存跟踪（&lt;code&gt;-XX:NativeMemoryTracking=summary&lt;/code&gt;）&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id="七案例研究specjbb2015基准测试"&gt;&lt;strong&gt;七、案例研究：SPECjbb2015基准测试&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;测试配置：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;固定吞吐量（比ZGC最大吞吐低30%）&lt;/li&gt;
&lt;li&gt;16GB堆&lt;/li&gt;
&lt;li&gt;对比G1 vs ZGC（分代模式）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;结果对比：&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;指标&lt;/th&gt;
&lt;th&gt;G1&lt;/th&gt;
&lt;th&gt;ZGC（分代）&lt;/th&gt;
&lt;th&gt;结论&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;延迟（P99.9）&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;~100ms&lt;/td&gt;
&lt;td&gt;40-50ms&lt;/td&gt;
&lt;td&gt;ZGC显著更优&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;平均GC暂停&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;65ms&lt;/td&gt;
&lt;td&gt;0.1ms&lt;/td&gt;
&lt;td&gt;ZGC亚毫秒级&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;CPU占用&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;平均50%，峰值90%&lt;/td&gt;
&lt;td&gt;平均67%，峰值94%&lt;/td&gt;
&lt;td&gt;ZGC消耗更多CPU&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Native内存&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;峰值440MB (~2.5%)&lt;/td&gt;
&lt;td&gt;峰值~1GB (~6%)&lt;/td&gt;
&lt;td&gt;ZGC内存开销更高&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;关键发现：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ZGC的40-50ms响应时间异常由&lt;strong&gt;应用线程辅助GC工作&lt;/strong&gt;导致（非GC暂停）&lt;/li&gt;
&lt;li&gt;G1的暂停时间始终低于200ms默认目标&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;不存在绝对最优解&lt;/strong&gt;：取决于业务对延迟/资源/吞吐的优先级&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id="八案例研究cassandra数据库"&gt;&lt;strong&gt;八、案例研究：Cassandra数据库&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;测试目标：&lt;/strong&gt; 对比不同客户端负载下的响应时间&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;结果：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;吞吐量视角&lt;/strong&gt;（平均响应时间）：G1略优（非延迟指标）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;延迟视角&lt;/strong&gt;（P99响应时间）：
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;非分代ZGC&lt;/strong&gt;：75客户端后分配停顿激增 → 延迟暴涨&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;分代ZGC&lt;/strong&gt;：支持275+客户端，保持超低延迟&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;G1（默认200ms）&lt;/strong&gt;：最坏情况&amp;lt;200ms&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;G1（调优50ms）&lt;/strong&gt;：延迟显著改善，接近ZGC水平&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;结论&lt;/strong&gt;：分代模式对ZGC至关重要，G1通过简单调优也能获得优秀延迟&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="九核心建议"&gt;&lt;strong&gt;九、核心建议&lt;/strong&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;升级JDK版本&lt;/strong&gt;：新版本GC性能大幅提升（尤其是JDK21+）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;按需选择GC&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;默认/通用&lt;/strong&gt;：G1（平衡，低资源）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;超低延迟&lt;/strong&gt;：ZGC（分代模式，资源充足场景）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;谨慎调优&lt;/strong&gt;：先测试默认行为，再针对性调整&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;全面评估&lt;/strong&gt;：不仅看延迟，还要权衡吞吐量和资源占用&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;持续学习&lt;/strong&gt;：关注GC调优指南、Inside.java、Java YouTube频道&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h3 id="十未来方向"&gt;&lt;strong&gt;十、未来方向&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;自动堆大小调整&lt;/strong&gt;：G1和ZGC均在开发中&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ZGC线程本地GC&lt;/strong&gt;：探索性工作&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;G1吞吐量优化&lt;/strong&gt;：屏障改进即将发布&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;总结&lt;/strong&gt;：现代Java GC已高度成熟，&lt;strong&gt;升级版本&lt;/strong&gt;和&lt;strong&gt;正确选型&lt;/strong&gt;比复杂调优更重要。G1是平衡之选，ZGC是延迟之王，两者都能通过极简配置满足绝大多数场景。&lt;/p&gt;</description></item></channel></rss>