2011-03-03 65 views
1

我的.NET应用程序有内存泄漏。很少有人似乎推荐使用CLR Profiler来处理这个问题,我对这个想法有些遗憾。对于我来说,为了找到内存泄漏,工具应该比较两种内存状态,这些状态可以为您提供两种状态之间的对象增长统计信息。所以在我看来,如果一个工具不能比较两个(或更多)内存状态,它就不能用于检测内存泄漏。显然,像性能计数器这样的东西有点不同,在这里你可以使用内存。是否可以使用CLR Profiler查找内存泄漏

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

+0

它不能,它的用户界面是不可思议的。这值得您为此付出。一个好的内存分析器需要花费几百美元。 – 2011-03-03 21:04:38

回答

0

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

我们有一个可重现的问题,我们发现某些事件链应该总是在工作完成后留下干净的表格 - 但事实并非如此。

因此,我们简单地设置了一个测试,其中我们做了几千次 - 然后我们在堆图和“根”处查看这些对象(数量更大) - 对象的原因为何还活着。它有助于解决我们的问题...