9
C#の世代別ガベージコレクタは何を意味していますか?それはコンセプトとは異なるのですか?GENERATIONは期間を表すために使われる用語だけですか?ガベージコレクタの世代とは何ですか?
C#の世代別ガベージコレクタは何を意味していますか?それはコンセプトとは異なるのですか?GENERATIONは期間を表すために使われる用語だけですか?ガベージコレクタの世代とは何ですか?
GC生成は、オブジェクトが存続するガベージコレクションの数に関係します。
すべてのオブジェクトは、世代0から開始されます。ガベージコレクションが発生し、世代Nオブジェクトを収集できない場合、世代N + 1に移動されます。
世代はガベージコレクションのパフォーマンスを最適化するために使用されます。
したがって、ガベージコレクションが発生すると、ガベージコレクタは世代0を収集することから開始され、これは迅速になります。十分なメモリが解放されれば、古い世代を見る必要がなくなり、収集が迅速に行われる可能性があります。
書籍についての書籍もあります。しかし始めるには、this article、またはreference hereにいくつかの詳細があります。
Driis: - 「古い世代を見る必要はありません」という意味ですか?私がここに来ているのは、十分なメモリがあれば、第N世代と第N + 1世代が見えないということです。 –
+1。 @ RahulTripathiには、各世代がコレクションに含まれるときに特定のルールセットを持つ3世代(0,1,2)しかありません。 driisによって提供されるリンク(および私がこれまで見た記事)は、世代ごとに詳細に入ります。 –
@RahulTripathiはい、アレクセイのコメントには世代0,1,2があります。世代2のオブジェクトは長命オブジェクトと言われています。 – driis