
[英]How to upgrade .Net 3.5 to .Net 4.0 automatically, including references?
[英]Check how many references are held to a given instance in .NET 3.5
是否可以检查.NET 3.5中对给定实例保留了多少引用?
您无法在运行时执行此操作。
如果加载了SOS扩展名,则可以使用WinDbg调试器来完成:
.loadby sos.dll mscorwks
您需要在内存中找到对象的地址,可能最好使用!dumpheap
命令来完成。 使用对象地址,然后可以运行!gcroot <address>
查找对对象的所有引用。
调试时,可以使用Windbg获取此数据。 在Windbg中有特定的命令。 我不是Windbg专家,但这可以帮助您入门
我喜欢ANTS Memory Profiler来完成这些任务。
您不能在运行时通过CLR获得此信息,因为CLR不维护引用计数。 很大的暗示是垃圾收集器是世代的,而不是引用计数驱动的。
雷蒙德·陈(Raymond Chen)在此主题上有一篇很好的文章:
http://blogs.msdn.com/b/oldnewthing/archive/2010/08/11/10048629.aspx
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.