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

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

Ответ 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 ГБ.

Надеюсь, что это поможет...:)