openjdk.ruOpenJDK на русском

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 не будет доступен в новых выпусках.