Under the Hood of .NET Memory Management