Я работаю на сервере Windows 2003 (64-разрядный) с 8 ГБ оперативной памяти. Как увеличить максимум памяти кучи? Я использую флаг -Xmx1500m
, чтобы увеличить размер кучи до 1500 Мб. Могу ли я увеличить память кучи до 75% физической памяти (6 ГБ кучи)?
Увеличить размер кучи в Java
Ответ 1
Вы можете увеличить до 4 ГБ на 32-битной системе. Если вы используете 64-битную систему, вы можете пойти выше. Не нужно беспокоиться, если вы выбрали неверно, если вы попросите 5g на 32-битной системе, java будет жаловаться на недопустимое значение и выйти.
Как и другие опубликованные, используйте флаги cmd-line - например,
java -Xmx6g myprogram
В любом случае вы можете получить полный список (или почти полный список), набрав java -X.
Ответ 2
Можно увеличить размер кучи, выделенный JVM, с помощью параметров командной строки Здесь у нас есть 3 варианта
-Xms<size> set initial Java heap size
-Xmx<size> set maximum Java heap size
-Xss<size> set java thread stack size
java -Xms16m -Xmx64m ClassName
В приведенной выше строке мы можем установить минимальную кучу 16 мб и максимальную кучу 64mb
Ответ 3
В 32-битной JVM наибольший размер кучи, который вы теоретически можете установить, составляет 4gb. Чтобы использовать большой размер кучи, вам нужно использовать 64-битную JVM. Попробуйте следующее:
java -Xmx6144M -d64
Флаг -d64 важен, так как это говорит о запуске JVM в 64-битном режиме.
Ответ 4
Можно увеличить размер кучи, выделенный JVM в eclipse напрямую В eclipse IDE goto
Запустить ---- > Запустить конфигурации ---- > Аргументы
Введите -Xmx1g (Он используется для установки максимального размера, такого как Xmx256m или Xmx1g...... m → mb g --- > gb)
Ответ 5
java -d64 -Xms512m -Xmx4g HelloWorld
где, -d64: активирует 64-битную JVM -Xms512m: задает начальный размер кучи как 512 МБ -Xmx4g: установит максимальный размер кучи как 4 ГБ (здесь имя java файла: HelloWorld.java)
Ответ 6
Могу ли я увеличить память кучи до 75% физической памяти (куча 6 ГБ).
Да, вы можете. Фактически, вы можете увеличить до большего объема физической памяти, если хотите.
Будет ли это хорошей идеей, это зависит от того, сколько еще работает в вашей системе. В частности, если "рабочий набор" приложений и служб, которые в настоящее время работают, значительно превышает доступную физическую память, ваша система может "трэш", проводя много времени, перемещая страницы виртуальной памяти на диск и с диска. Чистый эффект заключается в том, что система становится очень медленной.
Ответ 7
Это работает только с 64-разрядной версией Java. Перейдите в Панель управления и щелкните значок Java. В маленьком окне панели управления Java нажмите на панель меню Java, а затем нажмите кнопку view
.
Если у вас есть две платформы Java, отключите предыдущую версию Java, затем щелкните текстовое поле Параметры времени выполнения и напишите -Xmx1024m
или меньше, чем размер ОЗУ. Не увеличивайте размер кучи, равный ОЗУ, иначе ваша система выйдет из строя.
Ответ 8
Пожалуйста, используйте команду ниже, чтобы изменить размер кучи на 6 ГБ
export JAVA_OPTS="-Xms6144m -Xmx6144m -XX:NewSize=256m -XX:MaxNewSize=356m -XX:PermSize=256m -XX:MaxPermSize=356m"
Ответ 9
Вы можете увеличить размер кучи, передав параметры JVM -Xms и -Xmx, как показано ниже:
Для файлов Jar:
java -jar -Xms4096M -Xmx6144M jarFilePath.jar
Для файлов Java:
java -Xms4096M -Xmx6144M ClassName
Вышеуказанные параметры увеличивают InitialHeapSize (-Xms) до 4 ГБ (4096 МБ) и MaxHeapSize (-Xmx) до 6 ГБ (6144 МБ).
Но размер кучи Young Generation останется таким же, а дополнительный HeapSize будет добавлен в размер кучи старого поколения. Чтобы сравнять размер кучи Young Gen и кучи старого поколения, используйте параметры -XX: NewRatio = 1 -XX: -UseAdaptiveSizePolicy.
java -jar -Xms4096M -Xmx6144M -XX:NewRatio=1 -XX:-UseAdaptiveSizePolicy pathToJarFile.jar
-XX: NewRatio = Размер старого старого кучи: Young Gen HeapSize (вы можете играть с этим соотношением, чтобы получить желаемое соотношение).
Ответ 10
Несколько человек указали конкретные ответы на размер кучи с параметрами jvm -Xms
и -Xms
. Я хочу указать, что это не единственный тип параметров памяти для jvm. В частности, если вы получаете потоки над потоками, то вы захотите увеличить размер стека, добавив дополнительный параметр, например -Xss8m
.
Для этой проблемы варианты jvm чего-то типа -Xms2g -Xmx6g -Xss8m
будут решением.
Я делюсь этой информацией, так как мои поисковые запросы в Google о том, как увеличить объем памяти jvm, привели меня к этому решению, и решения не работали с большим объемом выделения памяти. Как только я выяснил, для каких конкретных настроек, мне удалось Google, как увеличить размер стека и найти недостающий параметр.:) Надеюсь, это спасет время других, так как это спасло бы мне массу времени.:)
Ответ 11
Да. Вы можете.
Вы можете увеличить свою память кучи до 75% физической памяти (6 ГБ кучи) или выше.
Поскольку вы используете 64-битный, вы можете увеличить размер кучи до нужной вам суммы. В случае, если вы используете 32bit, оно ограничено 4 ГБ.
$ java -Xms512m -Xmx6144m JavaApplication
Устанавливает исходный размер кучи до 512 МБ и максимальный размер до 6 ГБ.
Надеюсь, что это поможет...:)