Winforms / WPF专用字节内存泄漏?

时间:2014-04-16 20:01:13

标签: c# wpf winforms memory-leaks red-gate-ants

我正在使用Visual Studio 2008来处理Winform / WPF项目。

它使用多个项目和类将其构建为工作产品。

我的问题是,我们注意到内存使用中每秒有4-8k的泄漏。授予它是一个小泄漏,但它是不间断连续4-8k。我们的应用程序运行一夜,甚至几天。当那几天独自出现时,这个东西占用了比计算机可以处理的更多的内存(通常是2-3演出),并且在电脑上重新启动力是唯一的解决方案。即使没有发生任何事情,除了与我们的主机进行网络通

通过ANTS Memory Profiler对项目进行进一步分析后,我们发现私有字节数据不断增长。有没有办法告诉这个私人数据是从哪里创建的?我没有太多的运气跟踪ANTS。步骤会有很大帮助!

私有字节增加的图像(~45分钟):

graph of the private bytes at each snapshot

时间线增长的图像(约45分钟):

timeline of the private byte growth

提前致谢!

1 个答案:

答案 0 :(得分:0)

如果私有字节不断增加,则意味着您有内存泄漏。试试DebugDiag,它来自MS并且免费,也是一个非常好的工具来跟踪Windows上的内存泄漏。

使用此工具很简单,首先使用DebugDiag集合创建一个监视进程的规则,它将根据您的规则创建内存转储,您可以手动创建内存转储。然后您可以使用DebugDiag Analysis来分析转储,请在分析之前设置正确的符号路径。

此MSDN文章Identify And Prevent Memory Leaks In Managed Code也可能有所帮助。本文指出了如何查明内存泄漏是本机内存还是托管内存泄漏。如果它是纯粹的.NET管理泄漏,您还可以使用CLR profiler来调试问题。