【发布时间】:2012-06-26 10:14:00
【问题描述】:
我正试图在我们的一个应用程序中找到内存泄漏,但它非常难以捉摸。
我用 Ants 内存分析器分析了程序,发现泄漏发生在非托管代码中,而 Ants 内存分析器不适合:http://www.red-gate.com/supportcenter/content/ANTS_Memory_Profiler/help/7.4/amp_unmanaged_use 我检查了“图形缓冲区”和“问题与非托管代码中的对象处理”部分,但没有给出任何结果。
然后我使用了 Windows 调试诊断工具并进行了内存压力分析。大部分内存使用在本机堆中:堆 6 0x01ee0000(不是默认进程堆)。虚拟分配摘要内存低,泄漏分析中未完成的分配摘要内存低:没有一个模块具有高内存使用率。
我现在如何找到内存泄漏的位置?
【问题讨论】:
-
您是否在使用非托管资源?来自非托管代码的文件、套接字、缓冲区等?您还可以给 Visual Studio 内存分析器一个机会,并将结果与其他结果进行比较。
标签: .net memory-leaks red-gate-ants dmp