CLR Profiler

CLR Profiler is a memory profiler for the .NET Framework from Microsoft. It allows the user to investigate the contents of the managed heap, the behavior of the garbage collector, and the allocation patterns (including call-graph analysis) of the program being profiled.

The latest version, 4, released in February 2011, allows for profiling of .NET 2.0, 3.0, 3.5, or 4.0 managed code as well as Silverlight apps. The source code is included under a non-free license in the latest release.

It does not support profiling the CPU usage of an application.

Read more about CLR Profiler:  Downloads and Documentation