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. 有没有一种方法可以用jquery吸引dom泡泡?
- 3. 如何知道谁拥有ReaderWriterLockSlim?
- 4. 有没有一种方法可以在<img>标签上拥有@ url.Action
- 5. 有没有办法在Groovy中拥有可调用的对象?
- 6. 有没有一种方法让Activity知道它启动的resultCode?
- 7. 我可以拥有一个没有值的JavaScript对象键吗
- 8. 有没有办法知道一个对象的C#方法是否被调用?
- 9. 将可变自引用传递给拥有对象的方法
- 10. 有什么方法可以知道对象的类型?
- 11. 有一种方法可以知道和检查“谁来自”一个NET/HTTP请求“谁来自”/“来自哪里”?
- 12. 有没有一种方法可以轻松映射Ruby中的对象?
- 13. 有没有一种方法可以获得给定$$ hashKey的DOM对象?
- 14. 有没有一种方法可以一次使用Sequelize
- 15. 有没有一种方法可以确保ActiveRecord层次结构中每个记录的一个对象引用?
- 16. 有没有一种巧妙的方法来处理这个空对象引用?
- 17. 使用jQuery验证,有没有一种方法可以重置表单而不必引用创建的对象?
- 18. 对象有没有一种方法使用
- 19. 有没有一种方法可以完全禁用pixman
- 20. 有没有一种方法可以在tesseract中使用Asterix(*)?
- 21. 有没有一种方法可以在Linux上使用C++
- 22. 有没有一种方法可以使用书签排序gmail?
- 23. 有没有一种方法可以用Javascript进行验证?
- 24. 有没有一种方法可以在Polymer.js中使用Slick-Carousel?
- 25. 有没有办法知道我在记忆中拥有哪些对象和多少个对象?
- 26. 有没有一种方法可以找出Linux中的音频通道布局?
- 27. TokuMX对象的翻译:有没有一种方法“hasNext”
- 28. 有没有一种方法来结合在Javascript中的对象
- 29. 有没有办法知道谁是“setNeedsDisplay”的发件人?
- 30. 有没有办法知道谁下载我的Github存储库
你为什么叫GC.Collect?不要担心清理内存,除了内存以外的其他资源,你应该实现IDisposable和Dispose。 – 2009-05-19 13:56:02