I am working on a Windows 2003 server (64-bit) with 8 GB RAM. How can I increase the heap memory maximum? I am using the -Xmx1500m flag to increase the heap size to 1500 Mb. Can I increase the heap memory to 75% of physical memory (6 GB Heap)?
Joachim Sauer
299k57 gold badges552 silver badges611 bronze badges
asked Oct 14, 2009 at 10:12
4
You can increase to 2GB on a 32 bit system. If you’re on a 64 bit system you can go higher. No need to worry if you’ve chosen incorrectly, if you ask for 5g on a 32 bit system java will complain about an invalid value and quit.
As others have posted, use the cmd-line flags — e.g.
java -Xmx6g myprogram
You can get a full list (or a nearly full list, anyway) by typing java -X.
Manuel Jordan
14.6k19 gold badges89 silver badges148 bronze badges
answered Oct 14, 2009 at 12:48
Steve B.Steve B.
54.3k12 gold badges93 silver badges129 bronze badges
13
It is possible to increase heap size allocated by the JVM by using these command line options:
-Xms<size> set initial Java heap size
-Xmx<size> set maximum Java heap size
-Xss<size> set java thread stack size
In the following example, minimum heap size is set to 16mb, and the maximum to 64mb:
java -Xms16m -Xmx64m ClassName
Lee Goddard
10.1k3 gold badges46 silver badges60 bronze badges
answered Mar 20, 2013 at 7:10
Karthik ReddyKarthik Reddy
2,8621 gold badge18 silver badges8 bronze badges
0
On a 32-bit JVM, the largest heap size you can theoretically set is 4gb. To use a larger heap size, you need to use a 64-bit JVM. Try the following:
java -Xmx6144M -d64
The -d64 flag is important as this tells the JVM to run in 64-bit mode.
answered Oct 14, 2009 at 12:59
KevinKevin
30k9 gold badges76 silver badges83 bronze badges
2
You can increase the Heap Size by passing JVM parameters -Xms and -Xmx like below:
For Jar Files:
java -jar -Xms4096M -Xmx6144M jarFilePath.jar
For Java Files:
java -Xms4096M -Xmx6144M ClassName
The above parameters increase the InitialHeapSize (-Xms) to 4GB (4096 MB) and MaxHeapSize(-Xmx) to 6GB (6144 MB).
But, the Young Generation Heap Size will remain same and the additional HeapSize will be added to the Old Generation Heap Size. To equalize the size of Young Gen Heap and Old Gen Heap, use -XX:NewRatio=1 -XX:-UseAdaptiveSizePolicy params.
java -jar -Xms4096M -Xmx6144M -XX:NewRatio=1 -XX:-UseAdaptiveSizePolicy pathToJarFile.jar
-XX:NewRatio = Old Gen Heap Size : Young Gen HeapSize (You can play with this ratio to get your desired ratio).
answered Nov 20, 2017 at 8:47
Sahil ChhabraSahil Chhabra
10.9k4 gold badges63 silver badges63 bronze badges
It is possible to increase heap size allocated by the JVM in eclipse directly
In eclipse IDE goto
Run—->Run Configurations—->Arguments
Enter -Xmx1g(It is used to set the max size like Xmx256m or Xmx1g…… m—>mb g—>gb)
Maks3w
5,7996 gold badges37 silver badges42 bronze badges
answered Mar 20, 2013 at 7:47
Karthik ReddyKarthik Reddy
2,8621 gold badge18 silver badges8 bronze badges
1
java -d64 -Xms512m -Xmx4g HelloWorld
where,
-d64: Will enable 64-bit JVM
-Xms512m: Will set initial heap size as 512 MB
-Xmx4g: Will set maximum heap size as 4 GB
(here java file name is : HelloWorld.java)
answered Jul 12, 2013 at 7:03
Please use below command to change heap size to 6GB
export JAVA_OPTS="-Xms6144m -Xmx6144m -XX:NewSize=256m -XX:MaxNewSize=356m -XX:PermSize=256m -XX:MaxPermSize=356m"
answered Jan 17, 2017 at 7:10
3
Can I increase the heap memory to 75%
of physical memory(6GB Heap).
Yes you can. In fact, you can increase to more than the amount of physical memory, if you want to.
Whether it is a good idea to do this depends on how much else is running on your system. In particular, if the «working set» of the applications and services that are currently running significantly exceeds the available physical memory, your system is liable to «thrash», spending a lot of time moving virtual memory pages to and from disk. The net effect is that the system gets horribly slow.
answered Oct 14, 2009 at 10:16
Stephen CStephen C
688k94 gold badges790 silver badges1200 bronze badges
3
Several people pointed out the specific answers for heap size with the jvm options of -Xms and -Xms. I want to point out that this is not the only type of memory options for the jvm. Specifically if you are get stack over flows, then you’ll want to increase the size of the stack by adding an additional option like -Xss8m.
For this problem, the jvm options of something like -Xms2g -Xmx6g -Xss8m would be a solution.
I’m sharing this information as my google searches on how to increase jvm memory took me to this solution, and the solutions didn’t work with high amounts of memory allocation. Once I figured out what the specific settings were for, I was able to google how to increase the stack size and found the missing param. 

answered May 30, 2017 at 3:53
James OravecJames Oravec
19.1k26 gold badges92 silver badges155 bronze badges
This only works with 64 bit version of Java. Go to Control Panel and click on the Java icon. On the small window of Java Control Panel, click on the Java menu bar and then click on view button.
If you have two Java platforms, disable the previous version of Java, then click on Runtime parameters text field and write -Xmx1024m or less than RAM size. Don’t increase heap size equal to RAM otherwise your system will crash.
Eldelshell
6,5057 gold badges43 silver badges62 bronze badges
answered May 28, 2014 at 12:45
madhumadhu
531 bronze badge
1
Yes. You Can.
You can increase your heap memory to 75% of physical memory (6 GB Heap) or higher.
Since You are using 64bit you can increase your heap size to your desired amount. In Case you are using 32bit it is limited to 4GB.
$ java -Xms512m -Xmx6144m JavaApplication
Sets you with initial heap size to 512mb and maximum heapsize to 6GB.
Hope it Helps.. 
answered Apr 12, 2017 at 11:23
1
I have problem running the py files in my java code using eclipse/STS, getting PyException due to insufficient jvm heap memory. I have done the changes as mentioned below and I’m able to resolve this issue. Below is my System configuration.
And these are the changes I did in my workspace and voila it runs perfect now.
answered Mar 10, 2020 at 4:33
SureshSuresh
1,3072 gold badges20 silver badges26 bronze badges
Here are the steps if someone wants to know how to do this in windows.
answered Sep 8, 2021 at 7:36
Jagath01234Jagath01234
1391 silver badge10 bronze badges
I am working on a Windows 2003 server (64-bit) with 8 GB RAM. How can I increase the heap memory maximum? I am using the -Xmx1500m flag to increase the heap size to 1500 Mb. Can I increase the heap memory to 75% of physical memory (6 GB Heap)?
Joachim Sauer
299k57 gold badges552 silver badges611 bronze badges
asked Oct 14, 2009 at 10:12
4
You can increase to 2GB on a 32 bit system. If you’re on a 64 bit system you can go higher. No need to worry if you’ve chosen incorrectly, if you ask for 5g on a 32 bit system java will complain about an invalid value and quit.
As others have posted, use the cmd-line flags — e.g.
java -Xmx6g myprogram
You can get a full list (or a nearly full list, anyway) by typing java -X.
Manuel Jordan
14.6k19 gold badges89 silver badges148 bronze badges
answered Oct 14, 2009 at 12:48
Steve B.Steve B.
54.3k12 gold badges93 silver badges129 bronze badges
13
It is possible to increase heap size allocated by the JVM by using these command line options:
-Xms<size> set initial Java heap size
-Xmx<size> set maximum Java heap size
-Xss<size> set java thread stack size
In the following example, minimum heap size is set to 16mb, and the maximum to 64mb:
java -Xms16m -Xmx64m ClassName
Lee Goddard
10.1k3 gold badges46 silver badges60 bronze badges
answered Mar 20, 2013 at 7:10
Karthik ReddyKarthik Reddy
2,8621 gold badge18 silver badges8 bronze badges
0
On a 32-bit JVM, the largest heap size you can theoretically set is 4gb. To use a larger heap size, you need to use a 64-bit JVM. Try the following:
java -Xmx6144M -d64
The -d64 flag is important as this tells the JVM to run in 64-bit mode.
answered Oct 14, 2009 at 12:59
KevinKevin
30k9 gold badges76 silver badges83 bronze badges
2
You can increase the Heap Size by passing JVM parameters -Xms and -Xmx like below:
For Jar Files:
java -jar -Xms4096M -Xmx6144M jarFilePath.jar
For Java Files:
java -Xms4096M -Xmx6144M ClassName
The above parameters increase the InitialHeapSize (-Xms) to 4GB (4096 MB) and MaxHeapSize(-Xmx) to 6GB (6144 MB).
But, the Young Generation Heap Size will remain same and the additional HeapSize will be added to the Old Generation Heap Size. To equalize the size of Young Gen Heap and Old Gen Heap, use -XX:NewRatio=1 -XX:-UseAdaptiveSizePolicy params.
java -jar -Xms4096M -Xmx6144M -XX:NewRatio=1 -XX:-UseAdaptiveSizePolicy pathToJarFile.jar
-XX:NewRatio = Old Gen Heap Size : Young Gen HeapSize (You can play with this ratio to get your desired ratio).
answered Nov 20, 2017 at 8:47
Sahil ChhabraSahil Chhabra
10.9k4 gold badges63 silver badges63 bronze badges
It is possible to increase heap size allocated by the JVM in eclipse directly
In eclipse IDE goto
Run—->Run Configurations—->Arguments
Enter -Xmx1g(It is used to set the max size like Xmx256m or Xmx1g…… m—>mb g—>gb)
Maks3w
5,7996 gold badges37 silver badges42 bronze badges
answered Mar 20, 2013 at 7:47
Karthik ReddyKarthik Reddy
2,8621 gold badge18 silver badges8 bronze badges
1
java -d64 -Xms512m -Xmx4g HelloWorld
where,
-d64: Will enable 64-bit JVM
-Xms512m: Will set initial heap size as 512 MB
-Xmx4g: Will set maximum heap size as 4 GB
(here java file name is : HelloWorld.java)
answered Jul 12, 2013 at 7:03
Please use below command to change heap size to 6GB
export JAVA_OPTS="-Xms6144m -Xmx6144m -XX:NewSize=256m -XX:MaxNewSize=356m -XX:PermSize=256m -XX:MaxPermSize=356m"
answered Jan 17, 2017 at 7:10
3
Can I increase the heap memory to 75%
of physical memory(6GB Heap).
Yes you can. In fact, you can increase to more than the amount of physical memory, if you want to.
Whether it is a good idea to do this depends on how much else is running on your system. In particular, if the «working set» of the applications and services that are currently running significantly exceeds the available physical memory, your system is liable to «thrash», spending a lot of time moving virtual memory pages to and from disk. The net effect is that the system gets horribly slow.
answered Oct 14, 2009 at 10:16
Stephen CStephen C
688k94 gold badges790 silver badges1200 bronze badges
3
Several people pointed out the specific answers for heap size with the jvm options of -Xms and -Xms. I want to point out that this is not the only type of memory options for the jvm. Specifically if you are get stack over flows, then you’ll want to increase the size of the stack by adding an additional option like -Xss8m.
For this problem, the jvm options of something like -Xms2g -Xmx6g -Xss8m would be a solution.
I’m sharing this information as my google searches on how to increase jvm memory took me to this solution, and the solutions didn’t work with high amounts of memory allocation. Once I figured out what the specific settings were for, I was able to google how to increase the stack size and found the missing param. 

answered May 30, 2017 at 3:53
James OravecJames Oravec
19.1k26 gold badges92 silver badges155 bronze badges
This only works with 64 bit version of Java. Go to Control Panel and click on the Java icon. On the small window of Java Control Panel, click on the Java menu bar and then click on view button.
If you have two Java platforms, disable the previous version of Java, then click on Runtime parameters text field and write -Xmx1024m or less than RAM size. Don’t increase heap size equal to RAM otherwise your system will crash.
Eldelshell
6,5057 gold badges43 silver badges62 bronze badges
answered May 28, 2014 at 12:45
madhumadhu
531 bronze badge
1
Yes. You Can.
You can increase your heap memory to 75% of physical memory (6 GB Heap) or higher.
Since You are using 64bit you can increase your heap size to your desired amount. In Case you are using 32bit it is limited to 4GB.
$ java -Xms512m -Xmx6144m JavaApplication
Sets you with initial heap size to 512mb and maximum heapsize to 6GB.
Hope it Helps.. 
answered Apr 12, 2017 at 11:23
1
I have problem running the py files in my java code using eclipse/STS, getting PyException due to insufficient jvm heap memory. I have done the changes as mentioned below and I’m able to resolve this issue. Below is my System configuration.
And these are the changes I did in my workspace and voila it runs perfect now.
answered Mar 10, 2020 at 4:33
SureshSuresh
1,3072 gold badges20 silver badges26 bronze badges
Here are the steps if someone wants to know how to do this in windows.
answered Sep 8, 2021 at 7:36
Jagath01234Jagath01234
1391 silver badge10 bronze badges
Из-за взаимодействия программного компонента Java с разработанными продуктами могут возникать ошибки, решение которых лежит на плечах пользователя. Оно достигается двумя путями: переустановкой модуля и выделением дополнительной памяти Java. С каждой ситуацией стоит разобраться отдельно.
Задачу по увеличению Java памяти пользователи ставят перед собой в следующих случаях:
- Не запускается игра Minecraft. Геймер получает сообщение, что для запуска не хватает виртуальной памяти, хотя минимальные требования по оперативке соблюдены.
- Проблема с памятью кучи Java. Написанное серверное приложение не запускается. Для его полноценной работы требуется 512 Мб оперативки на компьютере, но трудности с запуском возникают даже при имеющихся 4 Гб.
Исправить проблему можно двумя способами.
Как выделить память Java
Выделить Джава-модулю больше оперативной памяти возможно через «Панель управления». Способ удобнее рассмотреть на примере проблем с запуском игры Minecraft.
Инструкция:
- Открывается «Панель управления».
- В поиске нужно найти Java-модуль.
- После запуска ПО в шапке выбирается раздел Java.
- В запустившемся окне открывается View.
- Для корректной работы модуля удалите лишние строки, если они есть. Должна остаться только одна, где указана последняя версия ПО. Важно обратить внимание на разрядность.
- Для увеличения памяти производится изменение столбца Runtime Parameters. При этом параметры записываются в следующем виде: -Xincgc-Xmx2048M, где 2048 – 2 Гб выделяемой оперативки. Важно писать без пробелов. В 32-битной ОС рекомендуется выделение 768 Мб.
- Нажимается ОК, ОС перезагружается.
Расшифровка используемых команд:
- Xincgc – освобождает неиспользуемые объекты из памяти;
- Xmx – максимальный объем оперативки;
- Xms – минимальный объем.
Если это не помогло запустить Minecraft, переустановите модуль Java и игру. После удаления очистите реестр с помощью CCleaner.
Увеличение памяти с помощью переменных среды
Увеличить оперативную память в Джаве можно с помощью переменных системной среды. В виртуальной машине прописываются два аргумента, упомянутых ранее: -Xms и -Xmx.
Чтобы система воспринимала написанные аргументы, нужно добавить переменную с названием «_JAVA_OPTIONS».
Если количество памяти, отведенной для работы Java, в два раза меньше имеющейся оперативки, то команды прописываются по следующей инструкции:
- Открываются «Свойства» на ярлыке «Мой компьютер».
- Из левой части выбираются «Дополнительные параметры системы».
- На вкладке «Дополнительно» производится одиночный клик по «Переменные среды».
- Нажимается кнопка «Создать».
- Имя переменной: «_JAVA_OPTIONS», аргументы: «-Xms512m -Xmx1024m».
В примере объем оперативки составлял 1 Гб.
Видео: 3 способа выделить больше памяти Java.
Таким образом в статье рассмотрено два метода увеличения оперативной памяти, выделяемой для работы Java-модуля.
Загрузка…
Автор статьи
Программист, фрилансер, пишу на Java. Открыт к общению и готов ответить на ваши вопросы.
Загрузить PDF
Загрузить PDF
В этой статье мы расскажем вам, как в Windows 7 увеличить объем оперативной памяти (ОЗУ), который может использоваться Java-программой. Увеличение объема ОЗУ позволит Java-программам работать быстрее и потреблять больше системных ресурсов — таким образом, Java-процессы будут быстрее завершаться.
Шаги
-
1
Обновите Java (если необходимо). Если вы используете не самую последнюю версию Java, обновите ее, выполнив следующие действия:
- Перейдите на страницу https://www.java.com/ru/download/ в веб-браузере компьютера.
- Нажмите «Загрузить Java бесплатно» посередине страницы.
- Нажмите «Согласиться и начать бесплатную загрузку» в верхней части страницы.
- Дважды щелкните по скачанному файлу.
- Следуйте инструкциям на экране.
-
2
Откройте меню «Пуск»
. Нажмите на логотип Windows в нижнем левом углу экрана.
-
3
Щелкните по Панель управления. Эта опция находится в правой части меню «Пуск». Откроется Панель управления.
-
4
Откройте меню «Просмотр». Оно находится в верхней правой части страницы.
-
5
Щелкните по Крупные значки. Эта опция находится в меню. Содержимое Панели управления отобразится в виде отдельных значков, а не ссылок.
-
6
Нажмите Java. Эта опция находится в окне Панели управления. Откроется окно «Java».
- В некоторых случаях нужно нажать «Java (32-bit)».
-
7
Щелкните по вкладке Java. Она находится в верхней части окна Java. Затем нажмите View (Вид).
-
8
Дважды щелкните по текстовому полю «Runtime Parameters» (Параметры времени выполнения). Это пустое текстовое поле справа от номера версии Java. Курсор мыши отобразится в текстовом поле.
-
9
Введите значение памяти. Введите -Xms, объем (в мегабайтах) памяти, которое вы хотите использовать, и букву «m» (например, введите -Xms512m, чтобы разрешить Java использовать 512 МБ ОЗУ). Другими распространенными значениями являются:
- -Xms1024m: Java будет использовать 1 ГБ ОЗУ.
- -Xms2048m: Java будет использовать 2 ГБ ОЗУ.
- -Xms3072m: Java будет использовать 3 ГБ ОЗУ.
-
10
Нажмите ↵ Enter. Введенное значение будет добавлено в текстовое поле.
-
11
Нажмите Apply (Применить). Эта кнопка находится в нижней части окна. Изменения вступят в силу.
-
12
Щелкните по OK. Эта кнопка находится в нижней части окна. Окно «Java» закроется. Теперь программы Java будут использовать заданный объем ОЗУ.
Реклама
Советы
- Чтобы выяснить, какой максимальный объем оперативной памяти доступен на компьютере, щелкните правой кнопкой по значку «Компьютер», в меню выберите «Свойства» и найдите строку «Установленная память (ОЗУ)».[1]
Реклама
Предупреждения
- Если запустить Java-программу с измененными параметрами памяти, это может привести к замедлению работы компьютера при попытке использовать другие программы (например, веб-браузер).
Реклама
Об этой статье
Эту страницу просматривали 62 542 раза.
Была ли эта статья полезной?
Операционная система Windows самостоятельно распоряжается установленной на компьютере оперативной памятью для запуска различных процессов. Но зачастую некоторые программы не получают достаточное количество ресурсов – особенно это касается некоторых игр на Java. Например, игра Minecraft является очень требовательной к оборудованию компьютера. Для выделения дополнительного объема памяти потребуется произвести некоторые настройки.

Инструкция
Для выделения большего количества памяти под приложения Java вы можете отредактировать некоторые параметры установленной на компьютере Java-машины. Перейдите в меню «Пуск» — «Панель управления» — «Программы». В появившемся списке разделов выберите Java.
В открывшемся окне настроек выберите строчку Java – View. В строке параметров Runtime.Parameters укажите значение -Xincgc -Xmx768M. Если у вас 64-разрядная операционная система, введите объем памяти, который хотите выделить под приложение, на свое усмотрение. Например, в строке настроек впишите -Xincgc -Xmx2048M. Так вы дадите виртуальной Java-машине 2048 Мб оперативной памяти для использования.
После указания нужных данных нажмите кнопку «Ок» и перезагрузите компьютер для применения измененных настроек. После перезагрузки вы можете запускать нужное вам приложение.
Также есть возможность вписать параметры выделения памяти для машины Java при помощи переменных среды компьютера. Кликните на пункте «Панель управления» меню «Пуск». Затем нажмите на ссылку «Настройка системы» — «Система». В появившемся разделе укажите «Дополнительно» — «Переменные среды». Кликните по кнопке «Создать».
В разделе «Имя» укажите _JAVA_OPTIONS. Затем задайте нужные для изменения параметры – впишите конфигурацию -Xincgc -Xmx3G. Стоит отметить, что в данном случае 3G означает выделение памяти в размере 3 Гигабайт.
Одной из наиболее требовательных игр на Java стала Minecraft. В настройках ее профиля вы можете вручную указать количество оперативной памяти, которое вы хотите выделить. Кликните на разделе Edit Profile («Изменить») в окне лаунчера игры и в соответствующем пункте напишите количество оперативки. После этого сохраните изменения. Теперь вы можете приступать к запуску игры.
Полезный совет
Чтобы определить разрядность операционной системы, кликните на «Пуск» и нажмите на строчке «Компьютер» правой клавишей мыши. В появившемся списке параметров выберите «Свойства». В окне описания свойств компьютера вы увидите указание разрядности вашей Windows.
Редактирование параметров памяти при работе с Java.
-Xmn определяет объём занятой памяти до которой сборщик мусора должен освобождать память (если это возможно);-Xms определяет размер начальной выделенной памяти под объекты;-Xmx определяет максимальный размер памяти, выше которого приложение не задействует;
Правило настроек запуска:
-Xmn < -Xms < -Xmx
А также:
Xms примерно равно Xmx;Xmn примерно половина от Xms;
Java «Heap» is a continous memory region where all Objects data will be stored (by data, we mean instance of class, primitive and references). It’s a big part of the process heap. It can be configured using the following parameters:
-Xmx : max heap size (ex: -Xmx1024);-Xms : min heap size. Having -Xms = 1.8GB (32bit) can be bad, because you don’t let memory for anything else;-Xmn : the size of the heap for the young generation.
Young generation represents all the objects which have a short life of time. Young generation objects are in a specific location into the heap, where the garbage collector will pass often. All new objects are created into the young generation region (called «eden»). When an object survive is still «alive» after more than 2-3 gc cleaning, then it will be swap has an «old generation» : they are «survivor» .
Good size is 33%
-XX:NewRatio : the same as Wmn, but using a % (dynamic fs static -Xmn option);-XX:NewRatio=3 means that the ratio between the old and young generation is 1:3;-XX:NewSize — Size of the young generation at JVM init. Calculated automatically if you specify -XX:NewRatio;-XX:MaxNewSize — The largest size the young generation can grow to (unlimited if this value is not specified at command line);-XX:SurvivorRatio : «old generation» called tenured generation, ratio, in %. For example, -XX:SurvivorRatio=6 sets the ratio between each survivor space and eden to be 1:6 (eden is where new objects are created);-XX:MinHeapFreeRatio: default is 40%. JVM will allocate memory to always have as minimum 40% of free memory. When -Xmx = -Xms, it’s useless;-XX:MaxHeapFreeRatio: default is 70%. The same as Min, to avoid unecessary memory allocation.










