我正在接手一个已有的应用程序,它有许多内存泄漏问题。我怀疑这些问题是由于订阅了但从未释放的事件处理程序引起的。有哪些工具或资源可以帮助我确定即使因为开放式事件处理程序而超出范围的对象?
我正在接手一个已有的应用程序,它有许多内存泄漏问题。我怀疑这些问题是由于订阅了但从未释放的事件处理程序引起的。有哪些工具或资源可以帮助我确定即使因为开放式事件处理程序而超出范围的对象?
JetBrains 还有一个内存分析工具: dotTrace Memory。我有这个工具,但还没有用得足够多来给出推荐。它也不是免费的(除非你在用户组中赢得了许可证)。 :)
我还建议确保所有实现 IDisposable 接口的类的对象被正确释放。使用 using
块可以确保即使发生异常也能进行释放。虽然这涉及非托管资源而不是内存,但在实践中可能没有太大区别。
另请参考 检测 "泄漏" 的 IDisposable 对象,其中提到了多个内存分析工具。