JDK 27 宣布 G1 成为默认垃圾回收器

JDK 27 G1/Parallel/Serial GC Changes

随着 JDK 28 发布在即,JDK 27 在垃圾回收器方面带来了重大调整。最核心的变化是 JEP 523 正式生效,G1 取代 Serial GC 成为所有环境下的默认垃圾回收器,除非用户显式指定其他算法。这一决定基于 G1 在吞吐量、内存占用和延迟表现上已全面逼近甚至超越 Serial GC 的事实。此外,G1 修复了因弱引用导致巨型对象无法回收的 Bug,并优化了并发标记的自适应启动逻辑。Parallel GC 也改进了自适应晋升阈值,使其能更灵活地调整。Serial GC 虽不再是默认选项,但用户仍可通过参数保留其原有行为。这些改动旨在简化配置,让开发者无需再纠结于复杂的默认选择。

我们认为 G1 非常适合作为默认垃圾回收器,而根据晦涩的环境条件选择其他方案更多是一种负担而非优势。
  1. exabrial

    > 根据晦涩难懂的环境条件来选择其他东西,与其说是优势,不如说是一种负担

    这里指的是什么?“其他”是指 ZGC 还是 Shenandoah?

    “晦涩的环境条件”是什么意思?

  2. kasperni

    大家还在为 GC 问题头疼吗?

    我发现现代 JVM 基本上开箱即用,表现都差不多。

  3. smallnix

    GC 并没有让我们彻底摆脱手动内存管理,你只是把那些手动工作换成了配置环境变量,或者确保“为任务挑选正确的收集器”,或者调试性能或堆大小问题,又或者追踪弱引用或令人困惑的终结器。

同日更多故事

2026-08-13