Вопрос-ответ

Increase heap size in Java

Увеличить размер кучи в Java

Я работаю на сервере Windows 2003 (64-разрядная версия) с 8 ГБ оперативной памяти. Как я могу увеличить максимальный объем памяти кучи? Я использую флаг -Xmx1500m, чтобы увеличить размер кучи до 1500 Мб. Могу ли я увеличить объем кучи до 75% от физической памяти (куча 6 ГБ)?

Переведено автоматически
Ответ 1

Вы можете увеличить до 2GB в 32 разрядной системе. Если вы используете 64-разрядную систему, вы можете увеличить и выше. Не нужно беспокоиться, если вы выбрали неправильно, если вы запросите 5g в 32-разрядной системе, java пожалуется на недопустимое значение и завершит работу.

Как писали другие, используйте флаги командной строки - например

java -Xmx6g myprogram

Вы можете получить полный список (или, во всяком случае, почти полный список), набрав java -X.

Ответ 2

Можно увеличить размер кучи, выделяемой JVM, используя эти параметры командной строки:

-Xms<size>        set initial Java heap size
-Xmx<size> set maximum Java heap size
-Xss<size> set java thread stack size

В следующем примере минимальный размер кучи установлен равным 16 МБ, а максимальный - 64 МБ:

java -Xms16m -Xmx64m ClassName
Ответ 3

На 32-разрядной виртуальной машине максимальный размер кучи, который вы теоретически можете установить, составляет 4 ГБ. Чтобы использовать больший размер кучи, вам нужно использовать 64-разрядную виртуальную машину. Попробуйте следующее:


java -Xmx6144M -d64


Флаг -d64 важен, поскольку он указывает JVM работать в 64-разрядном режиме.

Ответ 4

Вы можете увеличить размер кучи, передав параметры JVM -Xms и -Xmx, как показано ниже:

Для файлов Jar:

java -jar -Xms4096M -Xmx6144M jarFilePath.jar

Для файлов Java:

 java -Xms4096M -Xmx6144M ClassName

Указанные выше параметры увеличивают InitialHeapSize (-Xms) до 4 ГБ (4096 МБ) и MaxHeapSize(-Xmx) до 6 ГБ (6144 МБ).

Но размер кучи для молодого поколения останется прежним, а к размеру кучи для старого поколения будет добавлен дополнительный HeapSize. Чтобы выровнять размер кучи молодого поколения и кучи старого поколения, используйте -XX:NewRatio=1 -XX:-UseAdaptiveSizePolicy параметры.

java -jar -Xms4096M -Xmx6144M -XX:NewRatio=1 -XX:-UseAdaptiveSizePolicy pathToJarFile.jar

-XX: NewRatio = Размер кучи старого поколения: HeapSize молодого поколения (Вы можете поиграть с этим соотношением, чтобы получить желаемое соотношение).

java