Как определяется максимальный размер кучи Java по умолчанию?
В клиентской JVM:
Максимальный размер кучи по умолчанию составляет половину физической памяти до размера физической памяти 192 мегабайта , а в остальных случаях — четверть физической памяти до размера физической памяти 1 гигабайт .
Пример:
If a machine has 128 megabytes of physical memory, then the maximum heap size is 64 megabytes, and greater than or equal to 1 gigabyte of physical memory results in a maximum heap size of 256 megabytes.
The maximum heap size is not actually used by the JVM unless your program creates enough objects to require it. A much smaller amount termed the initial heap size is allocated during JVM initialization.
В JVM сервера:
Эргономика конфигурации кучи JVM сервера теперь такая же, как у клиента, за исключением того, что максимальный размер кучи по умолчанию для 32-разрядных JVM составляет 1 гигабайт , что соответствует размеру физической памяти 4 гигабайта , а для 64-разрядных JVM составляет 32 гигабайта , что соответствует до размера физической памяти 128 гигабайт .
Параметры конфигурации системы влияют на значение по умолчанию, т. е. на физическую память компьютера и версию Java.
Максимальный размер кучи Java по умолчанию определяется с помощью следующих команд:
В Windows мы можем использовать любую из следующих команд:
- java -XX:+PrintFlagsFinal -version | findstr HeapSize
- java -XX:+PrintFlagsFinal -version | findstr /i “HeapSize PermSize ThreadStackSize”
В Linux/Unix можно использовать следующие команды:
- java -XX:+PrintFlagsFinal -version | grep HeapSize
- java -XX:+PrintFlagsFinal -version | grep -iE ‘HeapSize|PermSize|ThreadStackSize’
Статьи по Теме:
- Как работает JVM — архитектура JVM?
- Введение в кучу — учебные пособия по структуре данных и алгоритмам