Как установить размер кучи для среды Java вручную?

#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 () всегда будет отражать точную свободную память, оставшуюся в куче, поскольку куча никогда не будет расширяться.