9

C#中垃圾收集器的世代是什么意思?它与概念不同还是 GENERATION 只是一个用于表示时间段的术语?

4

1 回答 1

17

GC 生成与对象存活的垃圾收集次数有关。

所有对象都从第 0 代开始。当发生垃圾回收时,无法收集第 N 代对象,则将其移至第 N+1 代。

这些代用于性能优化垃圾收集。一般情况下,第 0 代:

  1. 是整个堆大小的一小部分
  2. 有很多短命的对象。

因此,当垃圾收集发生时,垃圾收集器从收集第 0 代开始,这将很快。如果可以释放足够的内存,则无需查看旧代,因此可以快速进行收集。

可以写有关该主题的书籍;但首先,本文中有一些很棒的细节,或者参考这里

于 2012-09-12T17:10:48.673 回答