私が理解している限り、.NET のすべてのバージョンで、0、1、2 の 3 世代のガベージ コレクションがあります。
調べるGC.MaxGeneration
と 2 以外の結果が得られる状況はありますか? GC 世代数が異なる他のフレームワークに GC はありますか?
私が理解している限り、.NET のすべてのバージョンで、0、1、2 の 3 世代のガベージ コレクションがあります。
調べるGC.MaxGeneration
と 2 以外の結果が得られる状況はありますか? GC 世代数が異なる他のフレームワークに GC はありますか?
GC.MaxGenerationがアプリケーションの存続期間中一定であることは、それ自体が実装の詳細であることに注意してください。
実装者への注意事項
この実装では、
MaxGeneration
プロパティによって返される値は、実行中のアプリケーションの存続期間中一定であることが保証されています。
これは、.NET フレームワークの他の実装MaxGeneration
と異なる可能性があるだけでなく、プログラムの実行中にも異なる可能性があることを意味します(プロパティ ゲッターが呼び出されたときにガベージ コレクターによって使用される世代の数によって異なります)。2
他の実装では、状況に応じて異なるガベージ コレクターを使用することもできます。たとえば、Mono はBoehm 非世代 GC (MaxGeneration
常に0
その場合) またはSGen 世代 GC (2 つの世代のみを実装するため、MaxGeneration
常にそれ以下になる) のいずれかを使用できます1
。