如何在GC中限制对象迁移?

时间:2014-12-29 10:07:41

标签: c# .net garbage-collection

我们可以限制从一代到另一代的对象迁移吗?

我们知道,一旦第0代将完整对象移至第1代,依此类推

假设我们想要限制G0到G1的迁移是否有可能?

如果是,那么请举一个合适的例子。

1 个答案:

答案 0 :(得分:1)

从你的问题:“我们知道,一旦第0代完整对象转移到第1代,依此类推” - 实际上,事实并非如此。
第1代保存由GC 检查并幸存下来的对象,第2代保留对象两个或更多垃圾收集。

.NET垃圾收集中没有“某些代已满”的标准。因此,基于G1和G2的定义 - 很明显,你不能阻止你的对象从G0迁移到G1 - 好像对象将在垃圾收集中存活,移动到G1