2012-09-30 28 views
0

可能重复:
What strategies and tools are useful for finding memory leaks in .NET?有什么办法可以告诉哪些c#对象没有被垃圾回收?

我有一个程序,运行一段时间后,给出了一个 “内存不足” 异常。这是一个相当复杂的程序,涉及到很多异步的东西。我不认为从代码开始就诊断问题,我认为如果能够判断哪些对象没有被垃圾收集的内存混乱,我可能会给我一个开端。

有没有办法做到这一点?

+0

看看这个问题:http://stackoverflow.com/questions/134086/what-strategies -and-tools-are-useful-for-finding-memory-leak-in-net –

+0

完美,谢谢。 –

+5

你可以使用一个分析器。 –

回答

0

即使你可以使用一个分析器来检查的对象,有时你不能相应地,当你有很多烤异步东西的改变你的逻辑。

一般我们做内存泄漏在不知不觉中使用事件处理程序的模式。

我对此一些帖子: http://www.codeproject.com/Articles/123448/GC-Algorithm-and-Story-of-WeakReference

http://www.abhisheksur.com/2012/02/optimizing-inpc-objects-against-memory.html

他们不是专门针对你的问题,但它可以帮助你。

+0

由于使用(内存)探查器需要更改逻辑?你能详细说明吗? –

0

我肯定会使用一个分析器,我已经使用了内存分析的最好的一种是赛特的内存分析器Scitech .NET Memory Profiler

0

如果您正在使用的线程同时异步像运行特定线程的线程代码控制示例在完成此运行后,同时运行10个线程,然后执行下一个10个线程,并且如果您正在创建任何非托管对象,则明确配置它

相关问题