【问题标题】:Detecting attached event handlers for garbage collection检测附加的事件处理程序以进行垃圾收集
【发布时间】:2011-08-25 17:07:27
【问题描述】:

我正在继承一个存在许多内存漏洞的现有应用程序。我怀疑它们是由订阅但从未发布的事件处理程序引起的。我可以使用哪些工具或资源来帮助识别由于打开的事件处理程序而超出范围的对象?

【问题讨论】:

标签: .net event-handling garbage-collection


【解决方案1】:

我使用redgate's ANTS memory profiler 成功解决了类似问题。这不是一个便宜的产品,但根据我的经验,它被证明非常有用并且物有所值。

【讨论】:

    【解决方案2】:

    JetBrains 还有一个内存分析器:dotTrace Memory。我得到了它,但没有足够的使用它来提出建议。它也不是免费的(除非您在用户组中获得许可证)。 :)

    我还会检查以确保其类实现 IDisposable 的所有对象都已正确处置。即使发生异常,using 块也会确保这一点。虽然这涉及非托管资源而不是内存,但实际上可能差别不大。

    另请参阅Detecting "leaked" IDisposable objects,其中提到了多个内存分析器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-22
      • 2010-09-27
      • 2011-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多