追踪内存泄漏(C#)的最佳方法仅在一个客户的盒子上可见

追踪只能在一个客户的测试/发布盒中找到的内存泄漏的最佳方法是什么,而在其他地方没有?

dotTrace3.1

(这个问题有点好笑,因为我正在追踪我机器上没有的内存泄漏…)

尝试像ANTS Profiler这样的内存分析器。

如果用户始终存在问题,请采用stackdump并以标准方式进行分析

它是代码,数据或配置。

既然你说代码在100%的时间没有错误,我会责怪配置。 获取配置的副本(以及可选的一些数据)并尝试复制问题; 你不会知道你已经找到并修复它而没有复制。

最后,用内存分析器解决它。

这是一个选项:给他们一个没有泄漏的盒子。

有时候,这不是代码。

编辑:它是代码,数据或配置。

或者.NET Framework,操作系统,驱动程序,IIS或COM(例如,自动化Excel),或者等等。

我的假设是内存泄漏是不可重现的,除了客户端的盒子(不能允许dev访问以进行调试)。

PerfMon可以提供帮助( http://dotnetdebug.ne​​t/2005/06/30/perfmon-your-debugging-buddy/ )。 有几个计数器可以帮助缩小资源泄漏的范围,以及以什么速度等等。