Я работаю на сервере 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 параметры.
-XX: NewRatio = Размер кучи старого поколения: HeapSize молодого поколения (Вы можете поиграть с этим соотношением, чтобы получить желаемое соотношение).