The Allocation profiler monitors the use of objects (class instances) and memory blocks in a profiled application. It determines whether allocated memory blocks or objects remain in memory after application termination. It also traces the references between objects and can show the stack of function calls that were executed when a specific instance was created or when a specific memory block was allocated. Even though the .NET runtime automatically releases all objects when the application terminates, this profiler is useful for performing analysis during the application execution and to spot excessive and unnecessary amounts of “live” objects. It helps you trace how the application uses memory, if it releases objects and memory blocks as expected, etc. This tutorial demonstrates how you can use the Allocation profiler to analyze your applications.