9

C#のガベージコレクターの世代とはどういう意味ですか? コンセプトと違うのか、GENERATION は単に時代を表す言葉なのか。

4

1 に答える 1

17

GCの生成は、オブジェクトが存続するガベージコレクションの数に関連しています。

すべてのオブジェクトは第0世代から始まります。ガベージコレクションが発生し、第N世代のオブジェクトを収集できない場合、そのオブジェクトは第N+1世代に移動されます。

世代は、ガベージコレクションのパフォーマンスを最適化するために使用されます。一般的に、世代0は次のようになります。

  1. サイズがヒープ全体のごく一部です
  2. 短命のオブジェクトがたくさんあります。

したがって、ガベージコレクションが発生すると、ガベージコレクターは第0世代の収集から開始します。これは高速です。十分なメモリを解放できれば、古い世代を調べる必要がないため、収集が迅速に行われる可能性があります。

その主題について本を書くことができます。しかし、最初に、この記事、またはここのリファレンスにいくつかの素晴らしい詳細があります。

于 2012-09-12T17:10:48.673 に答える