世代別ガベージ コレクションによってパフォーマンスが向上することは理解しています。
- Gen2 以外のコレクションでは、すべてのオブジェクトを最大 2 回移動する必要があり、Gen2 コレクションはまれです。
- システムが Gen0 コレクションを実行していて、オブジェクト (Gen1 または Gen2) が最後の Gen0 コレクション以降に書き込まれていない場合、システムはそのオブジェクトをスキャンしてその中の参照にタグを付ける必要はありません (それらはすべて Gen1 であるため)。または Gen2)。同様に、システムが Gen1 コレクションを実行している場合、最後の Gen1 コレクション以降に書き込まれなかったオブジェクトは無視できます。ガベージ コレクションの作業のほとんどはオブジェクトのスキャンであるため、スキャン時間の短縮は大きなメリットです。
Gen1 ガベージ コレクションから大きなオブジェクトを除外すると、どのようなパフォーマンス上の利点があるのでしょうか? 大きなオブジェクトは、ガベージ コレクターによってスキャンされても再配置されません。Gen1 コレクションは、オブジェクトの書き込みを介在させずに 2 つの連続する Gen1 コレクションが発生しない限り、または発生するまで、そのコンテンツをスキャンする必要があると予想されます。
私が見ていないパフォーマンス上の利点はありますか?