Java ガベージ コレクタをよりよく理解するために、仮想マシン ガベージ コレクションのチューニングに関するこの記事を読みました。各スペースには、必要なヒープ スペースが最大ヒープ サイズに近づくにつれて拡張できる仮想ヒープ スペース領域があります。これは、次の図で確認できます:
(ソース: oracle.com )
NewRatioパラメータでYoung GenerationとOld (Tenured) Generationの比率を設定し、SurvivorRatioパラメータでEden SpaceとSurvivor Spaceの比率を設定できます。
最近、この質問は、ヒープ スペースのデフォルトの比率を見つけることについて尋ねられました。PrintGCDetailsパラメーターを使用して比率を手動で計算する必要があると書かれています。
私の質問は次のとおりです。さまざまなヒープ領域のサイズが同じ比率で増加するので、アプリケーションのランタイム全体で起動時に設定された比率が一定に保たれますか? たとえば、Young Generation と Old/Tenured Generation のデフォルトの NewRatio が 3 で、最初に予約されたヒープ領域が Young の場合は 100MB、Old の場合は 300MB であるとします。古いスペース用にさらにメモリを確保する必要がある場合は、さらに 300MB 追加して合計 600MB とします。Young Space 用に予約されたメモリも、比率を維持したまま 2 倍の 200MB になりますか?