为什么物体一旦超出范围就不会被清除?

dev*_*747 3 .net garbage-collection

在.net中为什么垃圾收集器在它们超出范围时不会破坏对象?为什么要等到下一个清理过程运行?

Han*_*ant 8

这是一个尝试,由Chris Sells和Chris Tavares在2003年秋天由微软赞助的项目.他们通过向每个对象添加引用计数字段并修改JIT编译器以在引用超出范围时自动递减计数来修改CLR(Rotor版本).当计数变为零时自动运行终结器.

实现了目标,不再需要使用声明.

手术成功,病人死了.这些修改导致严重的性能下降.他们试图在Compuware的帮助下进行诊断,当时他是一家领先的工具供应商.但无法确定下来.发布失败的博客文章在这里,技术细节在这里.

垃圾收集器在此之后获得了更多的尊重.从那时起我就没有进一步的尝试了.