伊谢尔伦2017-04-18 10:00:39
個人的には、S0 と S1 はパフォーマンスを向上させるために存在すると感じています。
生存者スペースの使用:
常に空の Survivor スペースが 1 つあり、次のコレクションのコピー中に、eden と別の Survivor スペース内のライブ オブジェクトがこのスペースにコピーされます。
ライブ オブジェクトは、オブジェクトが十分に古くなり、Tenured 世代に配置できるようになるまで (過去をコピーする)、2 つの Survivor スペース間で往復コピーされます。
死んだオブジェクトはガベージ コレクション中にクリーンアップする必要があるため、生存領域が 1 つしかない場合、この生存領域内の死んだオブジェクトは、メモリの断片化を避けるために、生きたオブジェクトによってメモリの断片を生成します。移動させるとパフォーマンスが低下します。
上記の記述によれば、生存領域が 2 つある場合、メモリの断片化の問題は発生しません。
SO の答えはここにあります: http://stackoverflow.com/ques...
大家讲道理2017-04-18 10:00:39
新世代は复制收集算法
を使用し、2つのサバイバーエリアは复制收集算法
と協力することになります。
この種の問題については、私のブログで詳しく紹介していますので、興味があればご覧ください。