7

私が理解している限り、.NET のすべてのバージョンで、0、1、2 の 3 世代のガベージ コレクションがあります。

調べるGC.MaxGenerationと 2 以外の結果が得られる状況はありますか? GC 世代数が異なる他のフレームワークに GC はありますか?

4

1 に答える 1

9

GC.MaxGenerationがアプリケーションの存続期間中一定であることは、それ自体が実装の詳細であることに注意してください。

実装者への注意事項

この実装では、MaxGeneration プロパティによって返される値は、実行中のアプリケーションの存続期間中一定であることが保証されています。

これは、.NET フレームワークの他の実装MaxGenerationと異なる可能性があるだけでなく、プログラムの実行中にも異なる可能性があることを意味します(プロパティ ゲッターが呼び出されたときにガベージ コレクターによって使用される世代の数によって異なります)。2

他の実装では、状況に応じて異なるガベージ コレクターを使用することもできます。たとえば、Mono はBoehm 非世代 GC (MaxGeneration常に0その場合) またはSGen 世代 GC (2 つの世代のみを実装するため、MaxGeneration常にそれ以下になる) のいずれかを使用できます1

于 2013-04-05T12:54:34.023 に答える