C#使用GC以及如何跟踪内存泄漏

时间:2011-04-22 23:30:16

标签: c# memory-leaks garbage-collection

我有一个大型的C#服务器应用程序,我有兴趣了解GC类的工作原理,特别是我应该采取什么操作来确定可能的内存泄漏源。

是否有关于这个主题的书籍,或者它是不是真的那么精致?

6 个答案:

答案 0 :(得分:2)

你可以学习很多资源。

我希望你不要错过基础知识:

  • CLR通过C#3rd Edition by Jeffrey Richter

我想在您了解有关GC的详细信息之前,请尝试了解IDisposable和资源管理的处理方式:

GC特定:

希望有所帮助。

答案 1 :(得分:1)

不是一本书,但我们的团队使用ANTS Memory Profiler取得了相当不错的成功,可以追踪托管内存泄漏。他们的支持部分和包含的帮助将引导您完成跟踪不同类型的内存问题的过程。这不包括GC类本身的细节,如何跟踪常见错误(事件处理程序注销,静态变量等)。

答案 2 :(得分:1)

也不是一本书,而是体面的文章。 Memory Leak Detection in .NET

答案 3 :(得分:1)

Rico Mariani撰写了一篇精彩的文章:Tracking down managed memory leaks (how to find a GC leak)。我经常使用这种技术,简单而有效。让自己熟悉像Windbg这样的真正的调试器是一个额外的好处!

答案 4 :(得分:0)

还有SciTech .NET Memory Profiler,我们的团队一直在成功使用它。

答案 5 :(得分:0)

为了补充上述答案,最近有关Channel9的视频与Maoni Stephens(微软CLR团队的GC首席开发人员)一起,向您介绍了GC的基础知识,开发人员应该注意的内容,应该如何处理故障排除,以及您可以使用的一些工具。我找到了关于GC如何工作以及代和根的概念真正有用的解释。

以下是3集系列的第一部分:

http://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-33-CLR-GC-Part-1

相关问题