С чего Java запускает кучу, если я не укажу -Xms?

Возможный дубликат:
Как определяется размер кучи Java по умолчанию?

Мне интересно, что произойдет, если я не укажу -Xms для начального размера кучи JVM с Java?

В настоящее время у меня есть -Xms256m and -Xmx512m но это дает мне ошибку на моем сервере:

Failed to create JVM, return code is:-1

Я полагаю, что JVM испытывает проблемы с получением 256 МБ непрерывной памяти с 256-метровой начальной точкой. До сегодняшнего дня у нас был только -Xmx256m установка, но были некоторые процессы, которые не хватало памяти.

Может ли JVM функционировать, если я удалю -Xms установка и просто оставить -Xmx512m"? С чего начинается куча?

Как он получает непрерывную память, если не объявлена ​​начальная куча?

3 ответа

Решение

Чтобы ответить на ваш первый вопрос. Пожалуйста, посмотрите на комментарий Теда Хоппа. Как определяется размер кучи Java по умолчанию?

Во-вторых, вам не нужно указывать и минимальный, и максимальный размер кучи. Вы также вводите их неправильно.

Так должно быть -Xms256m -Xmx512m

Начальный размер кучи будет 4Mbyte с максимальной кучей 64Mbyte на машинах клиентского класса.

Начальный размер по умолчанию:

Larger of 1/64th of the System's physical memory on the machine or some reasonable minimum.Before J2SE 5.0, the default initial heap size was a reasonable minimum, which varies byplatform.

Не кладите =:

-Xms256m -Xmx512m

Я думаю, что по умолчанию исторически было 2 МБ, но это зависит от вашей версии Java и вашей платформы. Я постараюсь выкопать документы.

Другие вопросы по тегам