What profilers have you used when working with .net programs, and which would you particularly recommend?
I have used [Redgate ANTS](http://www.red-gate.com/products/ants_performance_profiler/) extensively. They are fairly similar in features and price. They both offer useful performance profiling and quite basic memory profiling. dotTrace integrates with Resharper, which is really convenient, as you can profile the performance of a unit test with one click from the IDE. However, dotTrace often seems to give spurious results (e.g. saying that a method took several years to run) I prefer the way that ANTS presents the profiling results. It shows you the source code and to the left of each line tells you how long it took to run. dotTrace just has a tree view. [EQATEC profiler](http://www.eqatec.com/Profiler/) is quite basic and requires you to compile special instrumented versions of your assemblies which can then be run in the EQATEC profiler. It is, however, free. Overall I prefer ANTS for performance profiling, although if you use Resharper then the integration of dotTrace is a killer feature and means it beats ANTS in usability. The free [Microsoft CLR Profiler](http://msdn.microsoft.com/en-us/library/ff650691.aspx) is all you need for .NET memory profiling.