Пожалуйста, объясните использование Xms
и Xmx
параметры в JVM. Каковы значения по умолчанию для них?
java
memory-management
parameters
jvm
Панкай
источник
источник
-Xmx128m -Xms64m
он может достигать максимума вокруг275m
RES mem, но при использовании-Xmx128m -Xms128m
он может достигать максимума вокруг550m
RES mem Использование Java 8 Лучше всего подчеркнуть GC и посмотреть, что происходит ...Ответы:
Флаг
Xmx
указывает максимальный пул выделения памяти для виртуальной машины Java (JVM), а такжеXms
указывает начальный пул выделения памяти.Это означает, что ваша JVM будет запущена с
Xms
объемом памяти и сможет использовать максимумXmx
объема памяти. Например, запуск JVM, как показано ниже, запустит его с 256 МБ памяти и позволит процессу использовать до 2048 МБ памяти:Флаг памяти также может быть указан в разных размерах, например, в килобайтах, мегабайтах и т. Д.
Xms
Флаг не имеет значения по умолчанию, иXmx
обычно имеет значение по умолчанию 256 МБ. Обычно эти флаги используются, когда вы сталкиваетесь сjava.lang.OutOfMemoryError
.При использовании этих настроек имейте в виду, что эти настройки предназначены для кучи JVM и что JVM может / будет использовать больше памяти, чем просто размер, выделенный для кучи. Из документации Oracle :
источник
OutOfMemoryError
произойдет an .-Xms256m
«256 МБ», а не «256 МБ», так как он использует двоичные числа, а не десять. См. En.wikipedia.org/wiki/Binary_prefix . Кроме того, поскольку некоторое свободное пространство не используется для дополнительного пула пространства Survivor, объем фактически доступной памятиRuntime.getRuntime().maxMemory()
меньше значения, указанного в параметреЗапустите команду,
java -X
и вы получите список всех-X
опций:Опции -X нестандартны и могут быть изменены без предварительного уведомления.
Я надеюсь, что это поможет вам понять
Xms
,Xmx
а также многое другое. :)источник
Вы можете указать это в вашей IDE. Например, для Eclipse в Конфигурации запуска → Аргументы виртуальной машины . Вы можете войти
-Xmx800m -Xms500m
какисточник
Сам вопрос уже был рассмотрен выше. Просто добавив часть значений по умолчанию.
Согласно http://docs.oracle.com/cd/E13150_01/jrockit_jvm/jrockit/jrdocs/refman/optionX.html
Значение по умолчанию Xmx будет зависеть от платформы и объема памяти, доступного в системе.
источник
Исходный размер кучи -Xms для запуска, однако во время рабочего процесса размер кучи может быть меньше -Xms из-за неактивности пользователей или итераций GC. Это не минимально необходимый размер кучи.
-Xmx максимальный размер кучи
источник