如何追踪一个内存泄漏问题,该问题仅在一个客户的测试/发布环境中出现,而其他地方却没有出现?
如何追踪一个内存泄漏问题,该问题仅在一个客户的测试/发布环境中出现,而其他地方却没有出现?
如果用户在一致的情况下遇到问题,请取一个 stackdump 并以标准方式进行分析
这里有一个选项:给他们一个没有泄漏的盒子。
有时候,问题不在代码上。
编辑: 要么是代码、数据或配置的问题。
或者是.NET Framework、操作系统、驱动程序、IIS或COM(例如自动化Excel)等等。
我的假设是内存泄漏无法在除了客户端之外的其他地方重现(开发人员无法访问客户端进行调试)。
它要么是代码、数据或配置。
既然你说代码不是每次都有问题,那我会怀疑是配置的问题。复制一份配置(和一些数据),尝试复制这个问题;只有重现了问题才能知道是否已经找到并解决了它。
最后,使用内存分析器来解决它。
PerfMon可以提供帮助(http://dotnetdebug.net/2005/06/30/perfmon-your-debugging-buddy/)。有几个计数器可以帮助缩小资源泄漏的范围,以及泄漏速率等。