Увеличить размер 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 МБ - Xmx4g: установит максимальный размер кучи как 4 ГБ (здесь имя файла java: HelloWorld.java)
могу ли я увеличить память кучи до 75% физической памяти (6 ГБ кучи).
Да, вы можете. На самом деле, вы можете увеличить до большего, чем объем физической памяти, если вы хотите.
является ли это хорошей идеей, чтобы сделать это зависит от того, сколько еще работает на вашей системе. В частности, если" рабочий набор " приложений и служб, которые в настоящее время работают, значительно превышает доступную физическую память, ваша система может "трэш", тратя много времени на перемещение страниц виртуальной памяти на диск и с диска. Чистый эффект заключается в том, что система становится ужасно медленной.
пожалуйста, используйте команду ниже, чтобы изменить размер кучи на 6 ГБ
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 Мб).
но Молодые размер кучи будет оставаться таким же, и дополнительные ограничивает объем оперативной памяти будет добавлено в Старый Размер Кучи. К уравнять размер кучи молодого поколения и кучи старого поколения используйте - XX: NewRatio=1-XX: - UseAdaptiveSizePolicy params.
java -jar -Xms4096M -Xmx6144M -XX:NewRatio=1 -XX:-UseAdaptiveSizePolicy pathToJarFile.jar
-начала XX:NewRatio = старый размер кучи поколения : молодые поколения ограничивает объем оперативной памяти (вы можете играть с этим соотношением, чтобы получить желаемое соотношение).
это работает только с 64-битной версией Java. Перейдите в Панель управления и нажмите на значок Java. В маленьком окне Панели Управления Java нажмите на строку меню Java, а затем нажмите на .
Если у вас есть две платформы Java, отключите предыдущую версию Java, а затем нажмите на параметры времени выполнения текстовое поле и писать
-Xmx1024m
или меньше, чем размер ОЗУ. Не увеличивайте размер кучи, равный ОЗУ, иначе ваша система рухнет.
несколько человек указали конкретные ответы для размера кучи с параметрами jvm
-Xms
и-Xms
. Я хочу отметить, что это не единственный тип параметров памяти для jvm. В частности, если вы получаете стек над потоками, то вы хотите увеличить размер стека, добавив дополнительную опцию, такую как-Xss8m
.для этой проблемы, параметры jvm что-то вроде
-Xms2g -Xmx6g -Xss8m
было бы решением.я делюсь этой информацией, так как моя поиск google о том, как увеличить память jvm, привел меня к этому решению, и решения не работали с большими объемами выделения памяти. Как только я выяснил, для чего нужны конкретные настройки, я смог google, как увеличить размер стека, и нашел недостающий параметр. :) Надеюсь, что это экономит время других, так как это сэкономило бы мне кучу времени. :)
да. вы можете.
вы можете увеличить объем памяти кучи до 75% физической памяти (6 ГБ кучи) или выше.
Так как вы используете 64bit вы можете увеличить размер кучи до нужного количества. В случае, если вы используете 32bit он ограничен до 4 ГБ.
$ java -Xms512m -Xmx6144m JavaApplication
устанавливает начальный размер кучи в 512 МБ и максимальный размер кучи в 6 ГБ.
надеюсь, что это помогает.. :)