С чего 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 by
platform.
Не кладите =
:
-Xms256m -Xmx512m
Я думаю, что по умолчанию исторически было 2 МБ, но это зависит от вашей версии Java и вашей платформы. Я постараюсь выкопать документы.