2
A
回答
4
在代碼中沒有辦法有效地做到這一點。追蹤這類泄漏的最好方法是使用像WinDbg這樣的工具。 SOS擴展有幾個命令,這些命令專門用於幫助跟蹤內存泄漏。
波多黎各做了關於這個問題的徹底博客條目:
2
你應該叫GC.WaitForPendingFinalizers
GC.Collect
後,讓垃圾回收清除freachable隊列。由於GC運行在不同的線程中,當GC嘗試完成任何需要完成的對象時,您的應用程序可能已經移動。通過調用GC.WaitForPendingFinalizers
,您將迫使當前線程等待GC完成清理可擴展隊列(需要完成的項目隊列),然後再恢復執行。
然而,這是說,我同意Joel Coehoorn的評論 - 當你獨自一人時,GC的效果最好。
2
除了Windbg,您還可以使用.net分析器。我已經完成了這兩方面的工作 - 配置文件不會告訴你Windbg無法做到的任何事情,但一個好的配置文件更友好一些。
Windbg 除了JaredPar的鏈接外,Tess Ferrandez還提供了一些有關.net使用Windbg的精彩文章。這裏的AA內存泄漏文章:http://blogs.msdn.com/tess/archive/2006/01/23/516139.aspx
探查: 我有很大的運氣與賽特的分析器(我沒有以任何方式,偉大的工具關聯,雖然): http://memprofiler.com/
他們有一些偉大的如何 - 也可以在他們的網站上觀看視頻。
相關問題
- 1. 誰擁有autorelease對象?
- 2. 有沒有辦法在Groovy中擁有可調用的對象?
- 3. 我可以擁有一個沒有值的JavaScript對象鍵嗎
- 4. 有沒有辦法知道一個對象的C#方法是否被調用?
- 5. 有什麼方法可以知道對象的類型?
- 6. 有一種方法可以知道和檢查「誰來自」一個NET/HTTP請求「誰來自」/「來自哪裏」?
- 7. 有沒有一種方法可以一次使用Sequelize
- 8. 有沒有一種方法可以確保ActiveRecord層次結構中每個記錄的一個對象引用?
- 9. 有沒有一種方法可以在Polymer.js中使用Slick-Carousel?
- 10. 有沒有一種方法可以用Javascript進行驗證?
- 11. 有沒有一種方法可以在Linux上使用C++
- 12. 有沒有一種方法可以使用書籤排序gmail?
- 13. 有沒有辦法知道我在記憶中擁有哪些對象和多少個對象?
- 14. 有沒有一種方法來結合在Javascript中的對象
- 15. TokuMX對象的翻譯:有沒有一種方法「hasNext」
- 16. 有沒有辦法知道誰下載我的Github存儲庫
- 17. 有沒有辦法知道誰是「setNeedsDisplay」的發件人?
- 18. 有沒有一種方法可以安全地引用Javascript多維數組?
- 19. Shiro:有沒有一種方法可以在我的項目
- 20. 有沒有一種方法可以區分JavaScript中的鼠標?
- 21. 有沒有一種方法可以級聯父pom的版本?
- 22. 有沒有一種方法可以投射閉包的參數?
- 23. SQL - 有沒有一種方法可以隱藏select中的列?
- 24. 有沒有一種方法來選擇的,我想知道是否有一種方法使用jQuery(以鏈接的方式)來選擇以下類型
- 25. 有沒有一種方法可以安全地知道託管AJAX調用的始發服務器?
- 26. django有沒有一種方法來註釋嵌套對象?
- 27. 有誰知道腳本引用的地方... payload.gosidekick.net ...來自哪裏?
- 28. Java lambda表達式有沒有方法可以引用封閉對象?
- 29. 有誰知道一種方法來打亂列表中的元素?
- 30. 有沒有一種方法可以在Android中獲得沒有GPS的速度?
你爲什麼叫GC.Collect?不要擔心清理內存,除了內存以外的其他資源,你應該實現IDisposable和Dispose。 – 2009-05-19 13:56:02