Java-Xms начальные размерные эффекты

У вас есть значение @Stateless назад.

Это не значит, что так:

Эй, контейнер, вот произвольный класс, пожалуйста, сделайте это be bean-фаз.

blockquote>

Это на самом деле означает:

Эй, контейнер, вот класс без гражданства, вы можете безопасно используйте его как фасол без состояния.

blockquote>

У вас класс с состоянием. Вы должны отметить его как @Stateful bean-компонента. В противном случае избавьтесь от всех состояний (неуправляемых переменных экземпляра), чтобы вы могли безопасно использовать его в качестве компонента @Stateless.

См. Также:

28
задан SyBer 28 March 2010 в 08:41
поделиться

4 ответа

Преимущество заключается в том, что производительность снижается, если вы используете достаточно кучи, чтобы ее размер был изменен. Если вы изначально установили его на 64 МБ, но оказалось, что вашему приложению под нагрузкой нужны 250 МБ, то, когда вы достигнете значения около 64 МБ, JVM выделит больше пространства кучи и, возможно, будет перемещаться по некоторым объектам и вести другой учет. Это, конечно, требует времени.

Когда ваше приложение находится под нагрузкой, вы хотите, чтобы все ресурсы были выделены для его запуска, поэтому эта дополнительная работа может замедлить реакцию приложения, или даже в некоторых случаях может произойти сбой, если у него заканчивается память до того, как куча окажется изменен.

Иногда при использовании Java-приложения вы увидите инструкции типа «установить Xms и Xmx в одно и то же значение». Это сделано для того, чтобы вообще избежать изменения размера, чтобы ваше приложение запускалось с уже такой большой кучей, какой она когда-либо будет.

32
ответ дан Phil 28 November 2019 в 03:23
поделиться

Связанная статья объясняет это достаточно ясно:

Значения по умолчанию: -Xms 3670k -Xmx 64m [...] Большой сервер приложения часто сталкиваются с двумя проблемами при использовании этих значений по умолчанию. Один - медленный запуск, потому что начальная куча мала, и ее размер необходимо изменять для многих основных коллекций. Более насущная проблема заключается в том, что максимальный размер кучи по умолчанию неоправданно мал для большинства серверных приложений. Эмпирические правила для сервера приложения:

  1. Если у вас нет проблем с паузами, попробуйте предоставить виртуальной машине как можно больше памяти . Размер по умолчанию (64 МБ) часто бывает слишком большим { {1}} малая.
  2. Установка для -Xms и -Xmx одного и того же значения повышает предсказуемость за счет удаления самого важного решения о размере виртуальной машины . Однако виртуальная машина не сможет компенсировать , если вы сделаете неправильный выбор.
  3. Как правило, увеличивайте объем памяти по мере увеличения числа процессоров , поскольку распределение может быть распараллелено.

Вас также может заинтересовать это обсуждение проблемы.

6
ответ дан 28 November 2019 в 03:23
поделиться

В чем преимущество установки параметра -Xms и наличия большей начальной памяти, а затем вычисляемой по умолчанию

Если начальная куча мала и ее размер необходимо изменить для многих основных коллекций, запуск будет медленным.

Кроме того, есть ли смысл в установке одинакового размера для начальной и максимальной памяти?

Установка одного и того же значения для параметров -Xms и -Xmx дает вам предсказуемость. Это особенно важно при определении размера JVM во время настройки производительности. Но JVM не сможет компенсировать ни одно плохое решение.

Я обычно использую те же значения для рабочих серверов (которые настраиваются во время тестирования производительности).

4
ответ дан 28 November 2019 в 03:23
поделиться

Если обычно вашему приложению требуется более 64 МБ памяти кучи, установка Xms на большее значение должна несколько повысить производительность приложения, поскольку виртуальной машине не придется запрашивать дополнительную память столько раз.

В производственной системе я считаю установку Xms и Xmx на одно и то же значение разумной. По сути, это означает, что "вот объем памяти кучи, который может получить ВМ, и я выделяю его сразу".

3
ответ дан 28 November 2019 в 03:23
поделиться
Другие вопросы по тегам:

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