Могу ли я изменить параметры JVM во время выполнения

Я пишу программу на Java, и в какой-то момент во время выполнения я хочу изменить настройки JVM (уменьшить кучу) и через некоторое время снова увеличить ее. Возможно ли это с Java?


person salvador    schedule 14.03.2014    source источник
comment
Могу я спросить зачем вам это нужно?   -  person DaveH    schedule 14.03.2014


Ответы (2)


Короче говоря: вы не можете. Размер кучи фиксируется после запуска, и нет возможности изменить его из кода.

person Silverlord    schedule 14.03.2014

Я не думаю, что это возможно, но вы, конечно, можете управлять кучей с помощью -Xmx или -Xms. Вы также можете поиграть с: -XX: MaxHeapFreeRatio: это максимальный процент (70 по умолчанию, если я не ошибаюсь) свободной кучи, прежде чем сборщик мусора сожмет ее.

Если указать небольшой -Xms, куча будет расти (при необходимости и будет включать полный сборщик мусора), также возможно сжатие обратно.

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

person Eugene    schedule 14.03.2014