1

我的 .NET 应用程序有内存泄漏。似乎很少有人为此目的推荐使用 CLR Profiler,我对这个想法有点迷茫。对我来说,为了找到内存泄漏,工具应该比较两个内存状态,这可以给你统计数据,比如两个状态之间的对象增长。所以在我看来,如果一个工具不能比较两个(或更多)内存状态,它就不能用于检测内存泄漏。显然,性能计数器之类的东西有点不同的概念,您可以在其中趋势内存使用情况。

所以我的问题是,是否有人可以解释 CLR Profiler 究竟如何用于检测内存泄漏?

4

1 回答 1

0

那么这取决于你有什么样的内存泄漏。

我们有一个可重现的,我们在其中更新了某个事件链应该在工作完成后总是留下一张干净的桌子——但事实并非如此。

所以我们简单地设置了一个测试,我们做了几千次 - 然后我们查看堆图中的那些对象(数量更大),并在“根”对象中查看为什么这些对象仍然存在的原因。它帮助解决了我们的问题......

于 2011-05-31T21:48:35.403 回答