.NET Garbage Collector Basics and Performance Hints (2003)
msdn.microsoft.com
msdn.microsoft.com
Most GC churn in most applications (I would think) is down to Linq and collection use.
https://github.com/dotnet/roslyn/blob/master/src/ExpressionE...
[1] http://scottdorman.github.io/2008/11/07/clr-4.0-garbage-coll...
[2] https://blogs.msdn.microsoft.com/dotnet/2012/07/20/the-net-f...
http://blog.jdconley.com/2006/06/how-to-build-scalable-net-s...
https://msdn.microsoft.com/en-us/library/system.servicemodel...
https://github.com/Microsoft/Microsoft.IO.RecyclableMemorySt...
Garbage Collection Overview
https://msdn.microsoft.com/en-us/library/0xy59wtx(v=vs.110)....
Fundamentals of garbage collection
https://msdn.microsoft.com/en-us/library/ee787088(v=vs.110)....
Visualising the .NET Garbage Collector
http://mattwarren.org/2016/06/20/Visualising-the-dotNET-Garb...
Clr Book of the runtime : Garbage Collection
https://github.com/dotnet/coreclr/blob/master/Documentation/...
Maoni Stephen's Blog
https://blogs.msdn.microsoft.com/maoni
https://blogs.msdn.microsoft.com/maoni/2004/06/15/using-gc-e...
https://blogs.msdn.microsoft.com/maoni/2004/09/25/using-gc-e...
https://blogs.msdn.microsoft.com/maoni/2004/12/19/using-gc-e...
https://blogs.msdn.microsoft.com/maoni/2005/05/06/using-gc-e...
There is also a refactoring effort to standardize the GC<->EE interface
https://github.com/dotnet/coreclr/projects/3
I would link to the source code of the GC itself, but it's a single 35KSLOC file.
http://www.red-gate.com/products/dotnet-development/ants-mem...
https://blogs.msdn.microsoft.com/dotnet/2012/10/09/improving...
It explains the middle-age death problem, a direct consequence of the generations, by giving you a mental framework to reason about the .net GC.
I used the insights in this article to build an application server back in 2005 or so that spent about 2% of its time in GC at full load.