测试在.NET应用程序的内存泄漏(Test for memory leaks in .NET app

2019-07-30 08:20发布

是否有任何分析静态源或正在运行的程序,以帮助检测内存泄漏任何好(免费)工具?

我已经建立了一些窗口服务,并希望确保不会,如果我离开他们运行连续数周来消耗内存。

Answer 1:

Doesn't meet your requirements of being free, but there's one by Red Gate I think is worth suggesting - ANTS Memory Profiler

I've used a number of their tools before (some on trial, some we've bought) and found them to be very good.



Answer 2:

我可以推荐http://memprofiler.com/ ,但它不是免费的。



Answer 3:

展鹏蚂蚁性能分析器可能的帮助。 这不是免费的...但有可能是足以让你的服务工作了14天的试用期。



Answer 4:

让你的服务运行和使用性能监视器来收集有关该服务的内存使用信息。 另外,如果你使用任何非托管资源,确保您的代码正确处置使用这些资源的IDisposable 。 在非托管环境中,你可以很容易地有泄漏,只需忘记释放的指针,但是这是不可能在托管环境中。 但是,如果你继续分配新对象,并保持对它们的引用,使他们不能被垃圾收集服务将需要越来越多的内存。



Answer 5:

我用微软的CLR探查取得了一些成功。 请务必阅读其文档获得的全部好处。



Answer 6:

资料夏普是.NET自由(开源)的性能和存储器剖析



Answer 7:

不要忘记,你可以使用Windows任务管理器来检测你的服务的内存泄漏至少存在。

使用任务管理器来跟踪物体它切换到进程选项卡的另一种方式,然后去查看 > 选择列 ,并检查用户对象GDI对象 (GDI可能不会对你有用,因为你正在运行的服务,但其他人可能发现它很有用。)



文章来源: Test for memory leaks in .NET applications