Являются ли соотношения между пробелами / поколениями в куче Java постоянными?
я прочиталэта статья о настройке сборки мусора виртуальной машины, чтобы лучше понять сборщик мусора Java. Каждое пространство имеетвиртуальный Область пространства кучи, в которую он может врастать, когда необходимое пространство кучи приближается к максимальному размеру кучи. Это можно увидеть на этой картинке:Java GC расположение поколений http://www.oracle.com/ocom/groups/public/@otn/documents/digitalasset/190244.gif
Вы можете установить соотношение междуМолодое поколение а такжеСтарое (штатное) поколение сNewRatio параметр, и соотношение междуРайское пространство а такжеSurvivor Space сSurvivorRatio параметр.
Относительно недавноэтот вопрос был задан вопрос о выяснении коэффициентов по умолчанию для кучи. Он говорит, что вы должны использоватьPrintGCDetails Параметр и рассчитать коэффициенты вручную.
Мой вопрос: увеличивается ли размер разных пространств кучи на одно и то же соотношение, сохраняя, таким образом, соотношение, установленное между ними, при постоянном запуске в течение всего времени выполнения приложения? Например, если для Young Generation и Old / Tenured Generation значение NewRatio по умолчанию равно 3, а первоначальное зарезервированное пространство кучи составляет 100 МБ для Young, и 300 МБ для Old. Если для старого пространства нужно зарезервировать больше памяти, скажем, 300 МБ, то есть 600 МБ. Память, зарезервированная для Young Space, также удваивается до 200 МБ, сохраняя соотношение без изменений?