JEP 474: 默认启用 ZGC 分代模式
JEP 474 已确定为 JDK 23 的目标更新。该提案建议将 Z 垃圾收集器(ZGC)从非分代模式默认切换为分代模式。非分代模式将在未来的 JDK 版本中被弃用并移除。这一变化将减少维护两种模式的成本,使未来的开发能更专注于 JEP 439(分代 ZGC)的优化。
主要变更
ZGenerational选项默认值变更:默认值从false改为true,标志着 Java 在内存管理策略上的转变,旨在为 Java 应用程序提供更多的可用内存并降低垃圾收集的开销。- 非分代模式弃用:非分代模式仍可用,但已被弃用。如果通过命令行显式启用非分代模式,系统会发出警告。未来该模式将被移除。
命令行参数示例
-XX:+UseZGC:现在默认使用分代 ZGC。-XX:+UseZGC -XX:+ZGenerational:同样使用分代 ZGC,但会发出ZGenerational标志的弃用警告。-XX:+UseZGC -XX:-ZGenerational:使用非分代 ZGC,同时发出ZGenerational标志的弃用警告和非分代模式即将移除的提示。
开发者注意事项
- 测试应用程序兼容性和性能:开发者应测试其应用程序,确保在新默认设置下的兼容性和性能表现。
- 高性能或低延迟应用的调整:虽然大多数应用风险较低,但某些高性能或低延迟应用可能需要调整配置。
OpenJDK 的承诺
OpenJDK 团队承诺通过测试确保现有配置和基准测试在新默认设置下的表现符合预期。这一更新旨在简化和改进垃圾收集过程,重点关注分代技术。
总结
JEP 474 标志着 Java 持续发展中的一个关键更新。它通过默认启用分代 ZGC,优化 Java 应用程序的内存管理。虽然开发者需要重新评估其应用程序的兼容性和性能,但这一更新将带来更高效的 Java 应用管理。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。