可能重複:
What strategies and tools are useful for finding memory leaks in .NET?有什麼辦法可以告訴哪些c#對象沒有被垃圾回收?
我有一個程序,運行一段時間後,給出了一個 「內存不足」 異常。這是一個相當複雜的程序,涉及到很多異步的東西。我不認爲從代碼開始就診斷問題,我認爲如果能夠判斷哪些對象沒有被垃圾收集的內存混亂,我可能會給我一個開端。
有沒有辦法做到這一點?
可能重複:
What strategies and tools are useful for finding memory leaks in .NET?有什麼辦法可以告訴哪些c#對象沒有被垃圾回收?
我有一個程序,運行一段時間後,給出了一個 「內存不足」 異常。這是一個相當複雜的程序,涉及到很多異步的東西。我不認爲從代碼開始就診斷問題,我認爲如果能夠判斷哪些對象沒有被垃圾收集的內存混亂,我可能會給我一個開端。
有沒有辦法做到這一點?
即使你可以使用一個分析器來檢查的對象,有時你不能相應地,當你有很多烤異步東西的改變你的邏輯。
一般我們做內存泄漏在不知不覺中使用事件處理程序的模式。
我對此一些帖子: http://www.codeproject.com/Articles/123448/GC-Algorithm-and-Story-of-WeakReference
http://www.abhisheksur.com/2012/02/optimizing-inpc-objects-against-memory.html
他們不是專門針對你的問題,但它可以幫助你。
由於使用(內存)探查器需要更改邏輯?你能詳細說明嗎? –
我肯定會使用一個分析器,我已經使用了內存分析的最好的一種是賽特的內存分析器Scitech .NET Memory Profiler
如果您正在使用的線程同時異步像運行特定線程的線程代碼控制示例在完成此運行後,同時運行10個線程,然後執行下一個10個線程,並且如果您正在創建任何非託管對象,則明確配置它
看看這個問題:http://stackoverflow.com/questions/134086/what-strategies -and-tools-are-useful-for-finding-memory-leak-in-net –
完美,謝謝。 –
你可以使用一個分析器。 –