Нарешті!
На Java 8u191 тепер у вас є варіанти:
-XX:InitialRAMPercentage
-XX:MaxRAMPercentage
-XX:MinRAMPercentage
які можна використовувати для розміру купи у відсотках від фізичної оперативної пам'яті. (що таке ж, як встановлена оперативна пам'ять за меншою кількістю використовуваного ядра).
Додаткову інформацію див. У примітках до випуску Java8 u191 . Зауважте, що параметри згадуються в заголовку Докера, але насправді вони застосовуються, чи перебуваєте ви в Докерському середовищі чи в традиційному середовищі.
Значення за замовчуванням MaxRAMPercentage
- 25%. Це надзвичайно консервативно.
Моє власне правило: Якщо ваш хост більш-менш присвячений запуску даної програми java, то ви можете без проблем різко зрости. Якщо ви працюєте в Linux, використовуєте лише стандартні демони і встановили оперативну пам’ять десь близько 1 Гбіт і вище, я б не вагався використовувати 75% для купи JVM. Ще раз пам’ятайте, що це 75% доступної оперативної пам’яті , а не встановлена оперативна пам’ять . Залишилося - це інші процеси наземного користування, які можуть працювати на хості та інші типи пам'яті, необхідні JVM (наприклад, для стека). Все разом це, як правило, добре впишеться в ті 25%, що залишилися. Очевидно, що при ще більш встановленій оперативній пам’яті 75% - це більш безпечна і безпечна ставка. (Я хочу, щоб люди JDK реалізували варіант, де можна вказати сходи)
Налаштування MaxRAMPercentage
параметра виглядає так:
java -XX:MaxRAMPercentage=75.0 ....
Зауважте, що ці відсоткові значення мають "подвійний" тип, і тому їх потрібно вказати десятковою крапкою. Ви отримуєте дещо дивну помилку, якщо використовуєте "75" замість "75,0".