.NET开发人员在托管应用程序中寻找(并避免)非托管泄漏的最佳方式是什么?用于查找/避免托管代码中的非托管泄漏的技术
似乎有很多优秀的资源用于跟踪托管泄漏,但我在追踪托管应用程序中的非托管泄漏方面没有发现太多。
This question是相关的,但从纯粹非托管的角度提出问题,许多答案都假设您可以访问非托管代码,并且没有提到任何.NET特定的陷阱或技术。
这里有一些(很基本的)事情我已经尝试:
- DebugDiag。它看起来很有希望,它可能适用于你,但它恰好会使我的特定应用程序崩溃。
- Rational PurifyPlus。可悲的是,也崩溃了我的应用程序。
- AQTime(在@Reed和@Caelum的推荐下)。这个程序看起来很棒,但就像@Caelum提到的问题的海报一样,AQTime也会崩溃我的应用程序。
- 暂时删除创建我知道使用非托管内存的对象的代码。
- 确保应用程序的配置实现
IDisposable
所有对象我要指出,我是能够成功地剖面中的另一管理应用程序使用上述分析器(这是泄漏非托管内存)。如果你有非托管泄漏,请给他们一个尝试。
您是对的:找到一种使用这些分析器的方法是一个非常好的主意。即使我的完整应用程序在通过配置文件运行时崩溃,我已经成功分析了一个小的漏洞应用程序。 – 2010-01-09 00:00:04