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