目录
Data_Array
JEP 521:分代式申南多垃圾回收器
JEP 521:分代式申南多垃圾回收器
原文:JEP 521- Generational Shenandoah
作者:
日期:2025-10-26
| 负责人 | 威廉·肯珀(William Kemper) |
|---|---|
| 类型 | 特性 |
| 范围 | JDK |
| 状态 | 已完成 / 已交付 |
| 版本 | 25 |
| 组件 | HotSpot / 垃圾回收器(GC) |
| 讨论地址 | hotspot - gc - dev@openjdk.org |
| 相关内容 | JEP 404:分代式申南多垃圾回收器(实验性) |
| 审核人 | 马丁·多尔(Martin Doerr)、罗曼·肯克(Roman Kennke)、托马斯·施图费(Thomas Stuefe) |
| 批准人 | 弗拉基米尔·科兹洛夫(Vladimir Kozlov) |
| 创建时间 | 2025/05/14 17:53 |
| 更新时间 | 2025/08/01 18:15 |
| 问题编号 | 8356990 |
摘要
将申南多垃圾回收器的分代模式从实验性特性转变为产品特性。
非目标
本特性的目标并非改变申南多垃圾回收器的默认模式。默认情况下,申南多将继续使用单代模式。
动机
申南多的分代模式在 JDK 24 中由 JEP 404 作为实验性特性集成进来。
从那时起,我们实施了许多稳定性和性能方面的改进。我们在多个平台上使用自己的单元测试以及知名的基准测试和工作负载,包括 DaCapo、SPECjbb2015、SPECjvm2008 和 Heapothesys 对其进行了广泛测试。已有几位用户反馈在运行高要求的工作负载时取得了成功。
现在是时候取消分代模式的实验状态了。
描述
在 JDK 24 中,通过以下命令行选项启用申南多的分代模式:
$ java -XX:+UseShenandoahGC \
-XX:+UnlockExperimentalVMOptions \
-XX:ShenandoahGCMode=generational ...
一旦分代模式成为产品特性,第二个选项 -XX:+UnlockExperimentalVMOptions 将不再需要。
我们不会更改任何其他选项或它们的默认值。
我们预计现有用户不会受到此更改的影响。取消指定 -XX:+UnlockExperimentalVMOptions 的要求,并不会使该选项出现在命令行上成为错误,所以现有用户无需进行任何更改即可继续使用分代模式。