我认为这取决于你将如何频繁地使用该工具。WinDbg + SOS 可以满足你提出的所有要求,而且功能更加强大,但是它有一个漫长而陡峭的学习曲线。它非常强大,因为它可以让你检查应用程序的托管和本机部分,但需要一些时间来适应。 WinDbg 是免费的,SOS 随 .NET Framework 一起提供。另外,还可以查看 PSSCor2 和 SOSEX.dll 等其他选项。另外,还有几个商业替代品,可能会给你带来更顺畅的体验。我喜欢 ANTS Memory Profiler,但 .NET Memory Profiler 也非常不错。
在这种情况下,最佳解决方案是使用带有Son of Strike (SOS)扩展的WinDbg。请参见MSDN。至于使用WinDbg进行托管调试的概述,Tess的博客是一个非常好的资源。 编辑: 如果您有兴趣查看与垃圾回收相关的对象引用,则此帖子特别有趣。
你可以尝试使用CLR Profiler,你可以从这里下载它。 http://www.dev102.com/2008/05/30/how-to-find-memory-leaks-with-clrprofiler/