Как определяется максимальный размер кучи Java по умолчанию?

Опубликовано: 21 Февраля, 2023

В клиентской 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?
  • Введение в кучу — учебные пособия по структуре данных и алгоритмам