В чем разница между параметрами xmx и MaxRAM JVM? - PullRequest
0 голосов
/ 07 января 2019

MaxRAM

в зависимости от объема памяти на машине. Доля памяти, используемая для кучи, контролируется параметрами командной строки InitialRAMFraction и MaxRAMFraction [...] Значение MaxRAM зависит от платформы.

Xmx

-Xmxn Укажите максимальный размер в байтах пула выделения памяти. Это значение должно быть кратно 1024 больше 2 МБ. Добавьте букву k или K для обозначения килобайт, или m или M для обозначения мегабайт. Значение по умолчанию составляет 64 МБ. Верхний предел для этого значения будет приблизительно 4000 м для платформ Solaris 7 и SPARC Solaris 8 и 2000 м для платформ Solaris 2.6 и x86, минус накладные расходы.

Как я понимаю, оба определяют heap размер. Нет? Что рекомендуется использовать: Xmx или MaxRAM? Если я использую оба, какой овверид другой?

1 Ответ

0 голосов
/ 07 января 2019

-Xmx указывает точный верхний предел для кучи. Это предпочтительный способ установки размера кучи.

-XX:MaxRAM не определяет размер кучи напрямую. Вместо этого этот параметр переопределяет фактический объем физической памяти при расчете пределов кучи на основе эргономики.

Если установлено -Xmx, MaxRAM никогда не используется. В противном случае максимальный размер кучи оценивается 1 как

MaxHeapSize = MaxRAM * MaxRAMPercentage / 100% (default MaxRAMPercentage=25)

1 Фактический алгоритм немного сложнее и зависит от других параметров.

...