0

GC.CollectionCount 的 MSDN 文档指出:“返回指定代对象的垃圾收集发生的次数。”

这是否意味着它只在分代堆上执行此分析,或者是否有某种方法可以测量大对象堆中发生的集合数量?

4

1 回答 1

1

你真的不应该太担心这些类型的方法,除非你正在构建一些非常具体的东西或者有一个有针对性的用例。通常,您会从内存分析器的结果中获取此信息,这将为您提供更多有用的信息

一些相关信息

世代

新分配的对象形成了新一代的对象,并且是隐式的第 0 代集合。但是,如果它们是大对象,则它们会在大对象堆 (LOH) 上运行,有时称为第 3 代。第 3 代是在逻辑上作为第 2 代的一部分收集的物理代。

使用GC.CollectionCount它需要一个代整数,所以如果你愿意,你可以指定 3

关于GC.Collect这一点,将全面收集所有世代。

这个话题显然还有很多内容已经被掩盖了。但是,以下是一个很好的起点

垃圾收集的基础知识

于 2021-01-18T03:47:42.033 回答