【发布时间】:2009-02-17 14:35:01
【问题描述】:
是否可以查看调用 GC.Collect() 时收集的所有 .net 对象?
我需要查看哪些对象仍在内存中并且没有被回收,所以我可以找到应该手动回收对象但被程序员忘记的地方。
我不想调用 GC.Collect,因为某个地方的某个人忘记处置一个阻塞了一些句柄的对象。
【问题讨论】:
-
"should have [collected]" 是 GC 的一个奇怪短语
-
我经常听到人们这么说!开发人员说“它超出了范围,为什么不收集它?”假设 GC 会自动完成一切。虽然这是一部了不起的作品,但它并不完美。对 GC 了解得越多,就越知道一不小心就会发生内存泄漏。
-
"should have ..." 不是指 GC,而是手动处理对象 - 抱歉混淆了语言使用!
-
FxCop 可以帮助确定代码是否忽略给定类型的 IDisposable。
标签: .net debugging garbage-collection