Выделение памяти для Java-приложений

Иногда нужно устанавливать не только максимальный размер хипа но и минимальный (стартовый).
Если выставить -Xms512M -Xmx1024 то это заставит GC работать в более агрессивном режиме, и в отсутствие активного выделения памяти размер хипа будет стремиться к стартовому значению.
Если выставить только -Xmx то размер занимаемой памяти программой будет постепенно увеличиваться, пока не достигнет указанного значения.
Есть подозрение, что jvm не проверяет наличие реально доступной памяти в системе, если написать слишком большое число, jvm в рамках этого числа будет просить у OS все большее пространство до тех пор, пока память не закончится, и при очередном невыполнимом запросе OS просто остановит jvm.
Таким образом, если просто выставить размер хипа очень большим, это не гарантирует бесперебойной работы программы.
Нужно подбирать параметры -Xmx и -Xms для каждого конкретного случая.

Выделение памяти для Java-приложений

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>