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.
-
Документация: документацию следует обновить с учётом изменений размера кучи по умолчанию.