JEP 291: Deprecate the Concurrent Mark Sweep (CMS) Garbage Collector
Объявление сборщика мусора Concurrent Mark Sweep (CMS) устаревшим
| Ответственный | Jon Masamitsu |
| Тип | Feature |
| Область | JDK |
| Статус | Closed / Delivered |
| Выпуск | 9 |
| Компонент | hotspot / gc |
| Обсуждение | hotspot dash gc dash dev at openjdk dot java dot net |
| Связан с | JEP 363: Remove the Concurrent Mark Sweep (CMS) Garbage Collector |
| Рецензенты | Mikael Vidstedt |
| Создан | 2015/11/11 23:08 |
| Обновлён | 2020/04/06 21:19 |
| Задача | 8142518 |
Аннотация
Объявить сборщик мусора Concurrent Mark Sweep (CMS) устаревшим, чтобы прекратить его поддержку в одном из будущих основных выпусков.
Цели
Ускорить разработку других сборщиков мусора в HotSpot.
Мотивация
Прекращение поддержки CMS и последующее удаление кода CMS или хотя бы его более тщательное обособление уменьшат затраты на сопровождение кодовой базы GC и ускорят новую разработку. В долгосрочной перспективе сборщик мусора G1 должен заменить CMS в большинстве случаев его использования.
Описание
Объявить CMS устаревшим, чтобы при его запросе в командной строке с помощью параметра -XX:+UseConcMarkSweepGC выводилось предупреждение.
Этот JEP не определяет основной выпуск, в котором будет прекращена поддержка CMS. Решение о том, когда это сделать, будет зависеть от того, насколько сборщик G1 окажется подходящей заменой CMS. Пока же пользователям CMS рекомендуется перейти на сборщик G1 (-XX:+UseG1GC).
Тестирование
Проверить, что при запросе сборщика CMS выводится предусмотренное сообщение об устаревании.
Риски и допущения
-
Для некоторых приложений CMS подходит очень хорошо и, возможно, всегда будет превосходить G1 по производительности.
-
Когда поддержка CMS будет прекращена, CMS не будет доступен в новых выпусках.