Вопрос проверяет знание базовых и практических параметров JVM, влияющих на потребление памяти и поведение приложения под нагрузкой.
Для управления heap в JVM используются параметры запуска.
Основные из них задают начальный и максимальный размер кучи.
Также можно управлять размером поколений и поведением сборщика мусора.
Эти параметры напрямую влияют на стабильность и производительность приложения.
Управление heap осуществляется через параметры JVM, которые задаются при запуске приложения.
Эти параметры используются почти в каждом продакшн-приложении.
-Xms
Начальный размер heap
JVM сразу резервирует указанное количество памяти
-Xmx
Максимальный размер heap
JVM не превысит это значение
Пример:
-Xms2g -Xmx2g
Фиксированный размер снижает количество перестроений heap.
Для более тонкой настройки используются:
-Xmn
Размер Young Generation
-XX:NewRatio
Соотношение Old / Young
-XX:SurvivorRatio
Соотношение Eden и Survivor
Пример:
-XX:NewRatio=2
Это означает, что Old в два раза больше Young.
Настройка heap напрямую влияет на:
Частоту Minor GC
Частоту Full GC
Длительность пауз
На практике:
Сначала настраивают -Xms и -Xmx
Анализируют GC-логи
Только потом трогают более тонкие параметры
Параметры heap — базовый инструмент управления памятью JVM.
Начинать стоит с простых настроек и опираться на метрики.