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

JEP 141: Increase the Client VM's Default Heap Size

Увеличение размера кучи по умолчанию для клиентской VM

ОтветственныйJesper Wilhelmsson
ТипFeature
ОбластьImplementation
СтатусClosed / Withdrawn
Компонентhotspot / gc
Обсуждениеhotspot dash gc dash dev at openjdk dot java dot net
ТрудоёмкостьS
ДлительностьS
РецензентыMikael Vidstedt
ОдобренMikael Vidstedt
Создан2011/11/01 20:00
Обновлён2025/03/20 20:03
Задача8046131

Аннотация

Увеличить максимальный размер кучи по умолчанию для клиентской JVM, чтобы большинство клиентских приложений могли работать без настройки.

Критерии успеха

Выполнить набор бенчмарков, предоставленный командой клиентской части, без настройки и без исчерпания памяти.

Мотивация

Сейчас при запуске 32-битной клиентской JVM максимальный размер кучи по умолчанию составляет 256 МБ или меньше, и это затрагивает обычные клиентские приложения. Для запуска демонстраций или обычных приложений не должно требоваться увеличение максимального размера кучи. Обычная потребность демонстраций и современных приложений — около 512–1024 МБ кучи.

Описание

Увеличивая максимальный размер кучи по умолчанию, нам нужно оценить, можно ли сделать это с нашими текущими сборщиками мусора и по-прежнему соблюдать требования к времени паузы без дополнительных улучшений производительности. Сборщик ParallelOld, скорее всего, будет первым кандидатом для исследования, и в рамках этого изменения было предложено начать использовать его как сборщик по умолчанию для клиентских приложений.

Если мы увидим необходимость в улучшении производительности, нам нужно будет проанализировать данные о производительности, чтобы понять, на чём сосредоточить усилия.

Риски и допущения

Более крупная куча может привести к более длительному времени паузы сборки мусора. Если это окажется так, нам нужно будет рассмотреть, как улучшить GC, чтобы сократить время паузы.

Увеличение размера кучи по умолчанию может привести к невозможности инициализировать кучу большего размера. Эту проблему можно решить, если позволить VM повторить инициализацию с меньшим размером кучи.

Влияние

  • Производительность и масштабируемость: без регрессий. Если сборщик мусора по умолчанию будет изменён, для достижения наилучшей производительности может потребоваться настройка JVM.

  • Документация: документацию следует обновить с учётом изменений размера кучи по умолчанию.