是否可以检查 .NET 3.5 中给定实例的引用数量?
问问题
1696 次
5 回答
4
您不能在运行时执行此操作。
于 2010-12-28T21:08:33.553 回答
2
如果您加载 SOS 扩展,这可以使用 WinDbg 调试器完成:
.loadby sos.dll mscorwks
您需要在内存中找到对象的地址,最好使用!dumpheap
命令来完成。使用对象地址,您可以运行!gcroot <address>
以查找对您的对象的所有引用。
于 2010-12-28T21:53:41.740 回答
1
I love ANTS Memory Profiler for those kind of tasks.
于 2010-12-28T21:29:52.333 回答
1
在调试时,您可以使用 Windbg 获取此数据。Windbg中有具体的命令。我不是 Windbg 的专家,但这会让你开始
于 2010-12-28T21:11:13.703 回答
1
您无法在运行时通过 CLR 获取此信息,因为 CLR 不维护引用计数。一个很大的暗示是垃圾收集器是分代的,而不是引用计数驱动的。
Raymond Chen 在这里有一篇关于这个主题的好帖子:
http://blogs.msdn.com/b/oldnewthing/archive/2010/08/11/10048629.aspx
于 2010-12-28T21:48:43.107 回答