跟踪一个仅在某个客户端出现的 C# 内存泄漏问题的最佳方法

12

如何追踪一个内存泄漏问题,该问题仅在一个客户的测试/发布环境中出现,而其他地方却没有出现?


1
尝试使用Deleaker或类似的调试器(如VLD、Purify)- 必定会有所帮助... - MastAvalons
我也建议在这种情况下使用Deleaker。 - John Smith
6个回答

4

dotTrace 3.1

这个问题有点有趣,因为我正在追踪一种在我的电脑上不存在的内存泄漏问题...


4

0

如果用户在一致的情况下遇到问题,请取一个 stackdump 并以标准方式进行分析


0

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

有时候,问题不在代码上。

编辑: 要么是代码、数据或配置的问题。

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

我的假设是内存泄漏无法在除了客户端之外的其他地方重现(开发人员无法访问客户端进行调试)。


所以,你的意思是硬件分配内存后从未归还?哇!我感到害怕。 - xmjx
硬件不应该泄漏内存。但是编写不良的驱动程序确实可以。 - Jason Baker

0

它要么是代码、数据或配置。

既然你说代码不是每次都有问题,那我会怀疑是配置的问题。复制一份配置(和一些数据),尝试复制这个问题;只有重现了问题才能知道是否已经找到并解决了它。

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


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接