I present at a lot of the local Florida code camps (and some out of state ones as well) and have a set of presentations that I do which focus on .NET memory management, specifically a “deep dive” on how the GC works and another presentation which talks about how to implement the Dispose pattern properly.
I was doing some additional research today to update my list of resources in the presentations and decided to publish that list here as well. This is not an exhaustive list, but it is a subset of the books, articles, blogs and presentations that I used to form the content for my presentations.
Books
- CLR via C#, Second Edition (Pro Developer) (Paperback) (Jeffrey Richter)
- C# Essentials (2nd Edition) (Paperback) (Ben Albahari, Peter Drayton, and Brad Merrill)
- .NET Framework Essentials (Paperback) (Thuan Thai and Hoang Q. Lam)
- .NET Gotchas (Paperback) (Venkat Subramaniam)
- Programming .NET Components, 2nd Edition (Paperback) (Juval Löwy)
- Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries (Microsoft .NET Development Series) (Hardcover) (Krzysztof Cwalina and Brad Abrams)
- Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries (2nd Edition) (Microsoft .NET Development Series) (Hardcover) (Krzysztof Cwalina and Brad Abrams)
Articles
- Garbage Collection: Automatic Memory Management in the Microsoft .NET Framework (Jeffrey Richter)
- Garbage Collection – Part 2: Automatic Memory Management in the Microsoft .NET Framework (Jeffrey Richter)
- CLR Inside Out: Investigating Memory Issues (Claudio Caldato and Maoni Stephens)
- Implementing IDisposable and the Dispose Pattern Properly (Scott Dorman)
- SafeHandle and Constrained Execution Regions (Scott Dorman)
- Production Debugging for .NET Framework Applications (MSDN Library, patterns & practices)
- Automatic Memory Management (MSDN Library, Visual Studio 2008 Developer Center)
- Garbage Collection (MSDN Library, Visual Studio 2008 Developer Center)
Presentations, Webcasts, Podcasts
- .NET Framework: CLR Internals (Jeffrey Richter, Tech·Ed 2005 presentation)
- CLR Garbage Collector (Justin Smith)
Blogs
- Paul Wilson
- Maoni Stephens
- Using GC Efficiently – Part 1
- Using GC Efficiently – Part 2
- Using GC Efficiently – Part 3
- Using GC Efficiently – Part 4
- So, what’s new in the CLR 2.0 GC?
- Clearing up some confusion over finalization and other areas in GC
- Large Object Heap
- GC Performance Counters
- I Am a Happy Janitor – Part 1: Finding garbage
- DG Update: Dispose, Finalization, and Resource Management (Joe Duffy)
- When GC.KeepAlive Doesn’t (Chris Lyon)
- How To: Tune the .NET Framework (Channel 9)
- Notes on the CLR Garbage Collector (Vineet Gupta)
- Mid-life crisis (Rico Mariani)
- Memory management in the .NET Framework (Johan Straarup)
Tools
- CLR Profiler
- FxCop
- Performance Monitor
- WinDbg
- SOS Debugging Extensions