#java #heap-memory
#java #куча-память
Вопрос:
Как установить размер кучи Java и проверить его вручную?
Ответ №1:
Смотрите это http://www.caucho.com/resin-3.0/performance/jvm-tuning.xtp если вы хотите посмотреть, сколько памяти потребляет ваша программа и даже больше, используйте jvisualvm.exe (это будет доступно в папке %JAVA_HOME% /bin)
Ответ №2:
Вы можете установить минимальный и максимальный размеры кучи с помощью опций -ms
и -mx
. Вы также можете использовать более старые опции -Xms
и -Xmx
.
Что вы имеете в виду, проверяя это вручную? Вы можете просмотреть размеры кучи с помощью jconsole
.
Комментарии:
1. Насколько я знаю -Xms и -Xmx не являются старыми параметрами командной строки, поскольку они существуют примерно с java 5. Являются ли -ms и -mx новыми для Java 7 (которая еще не выпущена)?
2. Спасибо за ваш ответ. Я имею в виду, что я не хочу устанавливать размер с помощью cmd. Есть ли какой-либо прямой вариант, где я могу установить размер кучи, а также просмотреть его?
Ответ №3:
просто добавьте следующий переключатель
-Xms -Xmx
-Xmx
для максимального размера кучи и -Xms
для начального размера кучи.
Чтобы получить размер кучи
Runtime.getRuntime().totalMemory();
Ответ №4:
java -X
в командной строке отображается список параметров, которые вы можете использовать для точной настройки вашей JVM. Наиболее примечательно, когда дело доходит до кучи -Xms
и -Xmx
, которые позволяют вам установить начальный размер кучи и максимальный размер кучи. Вы можете проверить это в любой момент с помощью Runtime.getRuntime().freeMemory()
— однако стоит заметить, что если вы запустили JVM, скажем, со 100 МБ (начало кучи) и максимальным объемом кучи 1 ГБ, ваша свободная память может быть изначально 100 МБ (если в куче ничего нет), а затем увеличиваться по мере расширения кучи до 1 ГБ. Однако, если вы установите начальный размер и максимальный размер одинаковыми, то freeMemory () всегда будет отражать точную свободную память, оставшуюся в куче, поскольку куча никогда не будет расширяться.