我正在开发一个 C# 4.0 托管代码应用程序。我正在使用不符合 CLS 的外部 DLL。
我是否需要内存泄漏检测工具来检查 DLL 中的内存泄漏?如果是的话,那里最好的工具是什么?
我正在开发一个 C# 4.0 托管代码应用程序。我正在使用不符合 CLS 的外部 DLL。
我是否需要内存泄漏检测工具来检查 DLL 中的内存泄漏?如果是的话,那里最好的工具是什么?
即使在托管代码中,也可能存在内存泄漏。不过,除非你真的找到了,否则我不会深入研究内存泄漏。
如果您确实需要调查泄漏,那么我建议您使用ANTS Profiler,但这有其局限性,因此应根据具体情况进行处理。
是的,.NET 中可能存在内存泄漏。当您只使用基类库时,甚至可以使用它们,因为其中许多类本身调用非托管代码。
我曾经有过内存泄漏,因为在枚举它之后我没有处理 System.DirectoryServices.SearchResultCollection。
但是,我不知道有哪些泄漏检测工具可用。
您可以使用 CLR Profiler、VSTS Profiler、.NET Memory Profiler或 CLR Profiler 等工具来检查您的对象大小等,因为他们说您可以在任何 .NET 程序中查找内存泄漏并优化内存使用。
您可以使用免费的 WinDbg、SOS 和 GCRoot 来诊断内存泄漏。David Anson 在这篇博文中向您展示了如何操作。Rico Mariani 也有一篇关于使用 WinDbg 和 SOS的好博文。
JustTrace、dotTrace和ANTS Profiler等其他产品可以帮助您诊断此类问题。