据我所知,对于所有版本的.net,有三代垃圾收集:0、1和2。
在任何情况下,检查GC.MaxGeneration
会产生2以外的结果吗?其他框架上是否有gc具有不同数量的gc生成?
最佳答案
需要注意的是,GC.MaxGeneration在应用程序的生命周期内保持不变本身就是一个实现细节:
实施者注意事项
对于此实现,返回的值由MaxGeneration
属性在
正在执行应用程序。
这意味着MaxGeneration
不仅可以不同于.net framework的其他实现中的2
,而且在程序执行期间也可能不同(取决于垃圾收集器在调用属性getter时使用的生成数)。
其他实现也可以根据环境使用不同的垃圾收集器。例如,mono可以使用Boehm non-generational GC(MaxGeneration
将始终是0
then)或SGen generational GC(它只实现两代,因此MaxGeneration
将始终小于或等于1
。