PerfView is a free performance-analysis tool that helps isolate CPU and memory-related performance issues.
It is a Windows tool, but it also has some support for analyzing data collected on Linux machines.
It works for a wide variety of scenarios, but has a number of special features for investigating
performance issues in code written for the .NET runtime.