JEP 521: Generational Shenandoah
Shenandoah с поколениями
| Ответственный | William Kemper |
| Тип | Feature |
| Область | JDK |
| Статус | Closed / Delivered |
| Выпуск | 25 |
| Компонент | hotspot / gc |
| Обсуждение | hotspot dash gc dash dev at openjdk dot org |
| Связан с | JEP 404: Generational Shenandoah (Experimental) |
| JEP 535: Shenandoah GC: Generational Mode by Default | |
| Рецензенты | Martin Doerr, Roman Kennke, Thomas Stuefe |
| Одобрен | Vladimir Kozlov |
| Создан | 2025/05/14 17:53 |
| Обновлён | 2026/03/10 21:40 |
| Задача | 8356990 |
Аннотация
Перевести Generational Mode (режим с поколениями) сборщика мусора Shenandoah из статуса Experimental (экспериментальная функция) в штатные возможности.
Что не является целью
Изменение режима сборщика Shenandoah по умолчанию не является целью. По умолчанию Shenandoah по-прежнему будет использовать одно поколение.
Мотивация
Generational Mode сборщика Shenandoah был добавлен в статусе Experimental в JDK 24 в рамках JEP 404.
С тех пор мы реализовали множество улучшений стабильности и производительности. Мы всесторонне протестировали его на нескольких платформах с помощью собственных модульных тестов, а также известных бенчмарков и рабочих нагрузок, включая DaCapo, SPECjbb2015, SPECjvm2008 и Heapothesys. Несколько пользователей сообщили об успешной работе с требовательными нагрузками.
Пора снять с Generational Mode статус Experimental.
Описание
В JDK 24 Generational Mode сборщика Shenandoah включается параметрами командной строки
$ java -XX:+UseShenandoahGC \
-XX:+UnlockExperimentalVMOptions \
-XX:ShenandoahGCMode=generational ...
Второй параметр, -XX:+UnlockExperimentalVMOptions, больше не понадобится, когда Generational Mode станет штатной возможностью.
Другие параметры и их значения по умолчанию мы менять не будем.
Мы не ожидаем, что это изменение затронет существующих пользователей. Отмена требования указывать -XX:+UnlockExperimentalVMOptions не делает его наличие в командной строке ошибкой, поэтому существующим пользователям не нужно ничего менять, чтобы продолжать использовать Generational Mode.