Значения по умолчанию для Xmx, Xms, MaxPermSize на машинах не серверного класса - PullRequest
48 голосов
/ 21 ноября 2011

Каковы значения по умолчанию для следующих параметров в Java 6 на компьютере не серверного класса ?

  • -Xmx
  • -XX:MaxPermSize

Документация Oracle гласит, что:

На машинах серверного класса, на которых запущена виртуальная машина сервера, сборщик мусора (GC) изменился спредыдущий последовательный сборщик (-XX: + UseSerialGC) к параллельному сборщику (-XX: + UseParallelGC).

и

На машинах серверного класса, работающих под управлением виртуальной машины (клиент или сервер) с параллельным сборщиком мусора (-XX: + UseParallelGC), изменились начальный размер кучи и максимальный размер кучи

Страница не описывает настройки по умолчанию для машин не серверного классаТолько то, что, например, начальный размер кучи является «разумным минимумом».Глядя на 'man-страницу' для команды java, мы видим следующее для -Xms:

Значение по умолчанию выбирается во время выполнения на основе конфигурации системы

1 Ответ

69 голосов
/ 06 декабря 2011

Значения по умолчанию для JDK 1.6.0_29 в Windows 7/32-bit:

-Xmx256m
-XX:MaxPermSize=64m

Также значение этой опции может быть напечатано следующей командой:

java -XX:+UnlockExperimentalVMOptions -XX:+UnlockDiagnosticVMOptions -XX:+PrintFlagsFinal -version 2>&1

Затем найдите ключи MaxHeapSize и MaxPermSize и посмотрите значения по умолчанию.

uintx InitialHeapSize                          := 199947456       {product}
uintx MaxHeapSize                              := 268435456       {product}           
uintx MaxPermSize                               = 67108864        {pd product}        

Здесь - это шпаргалка по параметрам виртуальной машины Ultimate HotSpot со значениями по умолчанию и описаниями для последних 5 версий JDK (7, 8, 9, 10 и 11).

...