Summary
In this chapter, we took a more intimate look at garbage collection, object allocation and deallocation, and some techniques for ensuring that we write efficient applications. Understanding object and reference lifespans in our system can help us, as developers, to make good decisions when authoring code.
We always want to ensure that, while the .NET runtime gives us a wonderful background tool to automatically clean up our mess at times, we do not create unnecessary mess as well.
The CLR manages how objects are allocated in memory and reserves a contiguous block for the application’s needs. In this contiguous block, objects are created and cleaned up based on the needs of the process in effect. The significant advantage of having a contiguous block reserved is that there is little to no fragmentation. This makes it easy to find references to objects when needed. This contiguous space is also called the managed heap, and the GC constantly polls this heap to find...