Увеличить размер кучи в Java
-
21-09-2019 - |
Вопрос
Я работаю на сервере Windows 2003 (64-разрядная версия) с 8 ГБ оперативной памяти.Как я могу увеличить максимальный объем памяти кучи?Я использую -Xmx1500m
установите флажок, чтобы увеличить размер кучи до 1500 Мб.Могу ли я увеличить объем оперативной памяти до 75% от физической памяти (куча 6 ГБ)?
Решение
Вы можете увеличить размер до 4 ГБ в 32-разрядной системе.Если вы используете 64-битную систему, вы можете подняться выше.Не нужно беспокоиться, если вы выбрали неправильно, если вы запросите 5g в 32-разрядной системе, java пожалуется на недопустимое значение и завершит работу.
Как уже писали другие, используйте флаги командной строки - например
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
Выполнить----> Выполнить конфигурации----> Аргументы
Введите -Xmx1g (используется для установки максимального размера, например Xmx256m или Xmx1g......m--> mb g--->гб)
java -d64 -Xms512m -Xmx4g Адский мир
где, -d64:Позволит использовать 64-разрядную JVM -Xms512m:Установит начальный размер кучи в 512 МБ -Xmx4g:Установит максимальный размер кучи в 4 ГБ (здесь имя файла java равно :HelloWorld.java )
Могу ли я увеличить объем оперативной памяти до 75% физической памяти (куча 6 ГБ).
Да, ты можешь.На самом деле, вы можете увеличить объем физической памяти до большего, если захотите.
Является ли это хорошей идеей, зависит от того, сколько еще запущено в вашей системе.В частности, если "рабочий набор" запущенных в данный момент приложений и служб значительно превышает доступную физическую память, ваша система подвержена "сбоям", затрачивая много времени на перемещение страниц виртуальной памяти на диск и с диска.Конечный эффект заключается в том, что система становится ужасно медленной.
Вы можете увеличить размер кучи, передав параметры JVM -Xms и -Xmx как показано ниже:
Для файлов Jar:
java -jar -Xms4096M -Xmx6144M jarFilePath.jar
Для файлов Java:
java -Xms4096M -Xmx6144M ClassName
Вышеуказанные параметры увеличивают Начальный размер объекта (-Xms) до 4 ГБ (4096 МБ) и Максимальный размер (-Xmx) до 6 ГБ (6144 МБ).
Но, в Молодое поколение Размер кучи останется прежним, и дополнительный размер кучи будет добавлен к Старое поколение Размер кучи.Для выровняйте размер кучи молодого поколения и кучи Старого поколения, использовать -XX:NewRatio=1 -XX:-Используйте адаптивную политику параметры.
java -jar -Xms4096M -Xmx6144M -XX:NewRatio=1 -XX:-UseAdaptiveSizePolicy pathToJarFile.jar
-XX:NewRatio = Размер кучи старого поколения :Куча молодого Поколения (Вы можете поиграть с этим соотношением, чтобы получить желаемое соотношение).
Пожалуйста, используйте приведенную ниже команду, чтобы изменить размер кучи на 6 ГБ
export JAVA_OPTS="-Xms6144m -Xmx6144m -XX:NewSize=256m -XX:MaxNewSize=356m -XX:PermSize=256m -XX:MaxPermSize=356m"
Это работает только с 64-разрядной версией Java.Перейдите в Панель управления и нажмите на значок Java.В небольшом окне Панели управления Java щелкните по строке меню Java, а затем нажмите на view
кнопка.
Если у вас две платформы Java, отключите предыдущую версию Java, затем нажмите на Параметры времени выполнения текстовое поле и напишите -Xmx1024m
или меньше размера оперативной памяти.Не увеличивайте размер кучи, равный оперативной памяти, иначе ваша система выйдет из строя.
Несколько человек указали на конкретные ответы для размера кучи с помощью опций jvm -Xms
и -Xms
.Я хочу отметить, что это не единственный тип параметров памяти для jvm.В частности, если вы получаете стек поверх потоков, то вам захочется увеличить размер стека, добавив дополнительную опцию, такую как -Xss8m
.
Для этой проблемы параметры jvm чего-то вроде -Xms2g -Xmx6g -Xss8m
это было бы решением.
Я делюсь этой информацией, поскольку мои поиски в Google о том, как увеличить память jvm, привели меня к этому решению, а решения не работали при больших объемах выделяемой памяти.Как только я выяснил, для чего нужны конкретные настройки, я смог поискать в Google, как увеличить размер стека, и нашел недостающий параметр.:) Надеюсь, это сэкономит время другим, как это сэкономило бы мне кучу времени.:)
ДА.Ты можешь.
Вы можете увеличить объем оперативной памяти до 75% от объема физической памяти (куча 6 ГБ) или выше.
Поскольку вы используете 64-битную версию, вы можете увеличить размер вашей кучи до желаемой величины.В случае, если вы используете 32-разрядную версию, она ограничена 4 ГБ.
$ java -Xms512m -Xmx6144m JavaApplication
Устанавливает начальный размер кучи равным 512 МБ и максимальный размер кучи равным 6 ГБ.
Надеюсь, это поможет..:)