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

379
задан Hearen 23 March 2019 в 07:00
поделиться

1 ответ

Наконец!

С Java 8u191 у Вас теперь есть опции:

-XX:InitialRAMPercentage
-XX:MaxRAMPercentage
-XX:MinRAMPercentage

, который может использоваться для калибровки "кучи" как процента применимой физической RAM. (который является тем же, поскольку RAM установила меньше, что ядро использует).

См. Информация о версии для Java8 u191 для получения дополнительной информации. Обратите внимание, что опции упоминаются при Докере, направляющемся, но на самом деле они применяются, являетесь ли Вы в среде Докера или в традиционной среде.

значение по умолчанию для MaxRAMPercentage составляет 25%. Это чрезвычайно консервативно.

Мое собственное правило: Если Ваш хост более или менее выделен выполнению данного JAVA-приложения, то Вы можете без проблем увеличиваться существенно. Если Вы находитесь на Linux, только рабочие типичные демоны и установили RAM где-нибудь от приблизительно 1 Гбита, и затем я не смущался бы использовать 75% для "кучи" JVM. Снова, помните, что это - 75% RAM , доступного , не, RAM установил . То, что оставляют, является другими процессами пространства пользователя, которые могут работать на хосте и других типах памяти, в которой JVM нуждается (например, для стека). Все вместе, это будет обычно пригодный приятно в 25%, который оставляют. Очевидно, с еще более установленной RAM 75% более безопасная и более безопасная ставка. (Мне жаль, что люди JDK не реализовали опцию, где Вы могли указать лестничную структуру)

Установка MaxRAMPercentage, опция похожа на это:

java -XX:MaxRAMPercentage=75.0  ....

Примечание, что эти значения процента имеют 'двойной' тип и поэтому Вас , должно указывать их с десятичной точкой. Вы получаете несколько нечетную ошибку, если Вы используете "75" вместо "75,0".

4
ответ дан 22 November 2019 в 23:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: