任何人都可以告诉我.net中垃圾收集器的生成

时间:2010-04-01 12:05:46

标签: .net .net-3.5 garbage-collection

有人可以告诉我.net中生成垃圾收集器吗?

4 个答案:

答案 0 :(得分:4)

垃圾收集器使用了几种优化技术。其中一个使用几代物体。堆上的任何对象都属于其中一代:

  • 第0代 - 新分配的对象。它们从未被标记为收藏品。
  • 第1代 - 这一代中的物体在一次扫描中幸免于难。
  • 第2代 - 这一代中的物体幸存了不止一次。

GC更频繁地扫描更高数字的世代。

答案 1 :(得分:1)

答案 2 :(得分:1)

您不会生成垃圾收集器 - 垃圾收集器只是

它会在不可预测的时间触发并清除任何不再被引用的项目。您可以通过调用垃圾收集器上的Collect方法“建议”它可能立即工作,您可以通过System.GC访问它 - 但这并不能保证它会立即响应。

希望有所帮助。

答案 3 :(得分:0)

垃圾收集器有3代0 1 2

最高代是2.在.net中,垃圾收集器通常是隐式调用的,但你也可以明确强制GC。

当第一代填充时,即0 GEN&你的应用程序想要存储更多的值,然后这个GC将会调用&检查哪些元素正在使用&哪些不是&如果所有元素都在使用中,则删除未使用的元素,然后所有元素都被转移到更高的级别,即当所有代都被填充时,1 GEN同样地转移到2 GEN。如果你想存储更多元素,那么GC会抛出异常内存超出范围异常。