Увеличить размер heap в Java
Я работаю на сервере Windows 2003 (64-разрядном) с ОЗУ 8 ГБ. Как увеличить максимальный объем памяти кучи? Я использую -Xmx1500m
флаг для увеличения размера кучи до 1500 МБ. Могу ли я увеличить память кучи до 75% физической памяти (6 ГБ кучи)?
11 ответов
можно увеличить до 4 Гб на 32 битной системе. Если вы находитесь в 64-битной системе, вы можете подняться выше. Не нужно беспокоиться, если вы выбрали неправильно, если вы попросите 5g на 32-битной системе java будет жаловаться на недопустимое значение и выйти.
Как и другие, используйте флаги cmd-line-например
java -Xmx6g myprogram
вы можете получить полный список (или почти полный список, в любом случае), введя java-X.
можно увеличить размер кучи, выделенный 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 МБ и максимальную кучу 64 Мб
на 32-битной JVM самый большой размер кучи, который вы можете теоретически установить, составляет 4 ГБ. Чтобы использовать больший размер кучи, вам нужно использовать 64-разрядную JVM. Попробуйте следующее:
java-Xmx6144M-d64
флаг-d64 важен, так как это говорит JVM работать в 64-разрядном режиме.
можно увеличить размер кучи, выделенный JVM в eclipse напрямую В eclipse IDE goto
Выполнить - - - - >Выполнить Конфигурации - - - - > Аргументы
Enter-Xmx1g (используется для установки максимального размера, например Xmx256m или Xmx1g...... M-->mb g - - - > gb)
java-d64-Xms512m-Xmx4g HelloWorld
где, -d64: включит 64-разрядную JVM - Xms512m: установит начальный размер кучи как 512 MB - Xmx4g: установит максимальный размер кучи как 4 ГБ (здесь имя файла java: HelloWorld.java)
могу ли я увеличить память кучи до 75% физической памяти (куча 6GB).
Да, вы можете. Фактически, вы можете увеличить больше, чем объем физической памяти, если хотите.
хорошо ли это делать, зависит от того, сколько еще работает в вашей системе. В частности, если "рабочий набор" приложений и служб, работающих в данный момент, значительно превышает доступную физическую память, ваша система может "трэш", тратя много времени на перемещение страниц виртуальной памяти на диск и с диска. В результате система становится ужасно медленной.
пожалуйста, используйте команду ниже, чтобы изменить размер кучи на 6GB
export JAVA_OPTS="-Xms6144m -Xmx6144m -XX:NewSize=256m -XX:MaxNewSize=356m -XX:PermSize=256m -XX:MaxPermSize=356m"
вы можете увеличить размер кучи, передав параметры 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 params.
java -jar -Xms4096M -Xmx6144M -XX:NewRatio=1 -XX:-UseAdaptiveSizePolicy pathToJarFile.jar
- XX: NewRatio = старый Gen размер кучи: молодой Gen HeapSize (вы можете играть с этим соотношением, чтобы получить желаемое соотношение).
это работает только с 64-битной версией Java. Перейдите в Панель управления и нажмите на значок Java. В небольшом окне Панели Управления Java нажмите на строку меню Java, а затем нажмите на .
Если у вас есть две платформы Java, отключите предыдущую версию Java, а затем нажмите на параметры времени выполнения текстовое поле и писать -Xmx1024m
или меньше размера ОЗУ. Не увеличивайте размер кучи, равный ОЗУ, иначе ваша система рухнет.
несколько человек указали конкретные ответы на размер кучи с параметрами jvm -Xms
и -Xms
. Я хочу отметить, что это не единственный тип параметров памяти для jvm. В частности, если вы получаете стек над потоками, то вы захотите увеличить размер стека, добавив дополнительную опцию, такую как -Xss8m
.
для этой проблемы параметры jvm чего-то вроде -Xms2g -Xmx6g -Xss8m
было бы решением.
я делюсь этой информацией, так как моя поиск google о том, как увеличить память jvm, привел меня к этому решению, и решения не работали с большими объемами выделения памяти. Как только я понял, для чего предназначены конкретные настройки, я смог google увеличить размер стека и нашел отсутствующий параметр. :) Надеюсь, это экономит время других, так как это сэкономило бы мне массу времени. :)
да. вы можете.
вы можете увеличить память до 75% физической памяти (6 ГБ памяти) или выше.
поскольку вы используете 64bit, вы можете увеличить размер кучи до нужного количества. Если вы используете 32bit, он ограничен 4GB.
$ java -Xms512m -Xmx6144m JavaApplication
устанавливает начальный размер кучи в 512 МБ и максимальный размер кучи в 6 ГБ.
надеюсь, это поможет.. :)