【发布时间】:2014-04-16 20:01:12
【问题描述】:
我正在使用 Visual Studio 2008 处理 Winform / WPF 项目。
它使用多个项目和类将其构建成一个工作产品。
我的问题是,我们注意到内存使用量每秒有 4-8k 泄漏。当然这是一个小泄漏,但它是不间断的连续 4-8k。我们的应用程序会在晚上甚至几天运行。当这几天单独出现时,这个东西已经消耗了比计算机可以处理的更多的内存(通常是 2-3 gigs),并且在 pc 上强制重启是唯一的解决方案。即使除了与我们的主机进行网络通信之外什么都没有发生,这种泄漏也会发生。
通过 ANTS Memory Profiler 对项目进行进一步分析后,我们发现 Private bytes 数据在不断增长。有没有办法知道这些私人数据是从哪里创建的?我没有太多运气用 ANTS 追踪这个问题。步骤会有很大帮助!
私有字节增加的图像(约 45 分钟):
时间线增长图(约 45 分钟):
提前致谢!
【问题讨论】:
-
我会尝试使用 CPU 分析器。很可能,CPU 用在了哪里,就分配了内存。
-
托管内存分析器对于诊断非托管内存泄漏毫无帮助。花一些时间寻找环境因素。启用非托管调试并查看调试器的 Debug + Windows + Modules 窗口,确保您看到的所有内容都是您可以考虑的。找到假装保持机器安全和更可用的 cr*pware 的好方法。首先是反恶意软件。
标签: c# wpf winforms memory-leaks red-gate-ants