Tim Scott

All things for a good .NET geek

  Home  |   Contact  |   Syndication    |   Login
  36 Posts | 0 Stories | 4 Comments | 33 Trackbacks

News


Archives

Post Categories

Image Galleries

Coding

TechEd

Tuesday, July 24, 2007 #

So we had some forms in our .NET application that were slow. I took the opportunity to try out some .NET Profiling tools. 

  • CLRProfiler
  • Red-Gates ANTS Profiler
  • JetBrains dotTrace
  • Speed Trace Pro

CLRProfiler

Not too useful for my application.  I couldn't figure out how to easily track down slow code with it.

ANTS Profiler

The source code view of this profiler is awesome. It shows you line-by-line execution time for statements, highlighting the slowest lines with a bargraph in the margin.  Very useful.

Hard to find the slowest method in an overall execution path, as it sums the perf stats for all calls to a method. Filtering is tough to use, navigating methods is painful, and it feels very bare-bones.

dotTrace

This profiler was the most useful for finding my slow code.  It shows a by-executing tree of the call stack, with the time taken by each level summarized.  It makes it very easy to keep drilling down to find the slowest method.

Unfortunately, other than execution time for a method, it is hard to see where a method is slow. ANTS Profiler is much more suited to this.

Speed Trace Pro

Similar data to the ANTS Profiler, but with a much better UI than ANTS.  Shows caller/callee tree like dotTrace, but not quite as easy to navigate. Nice pie charts.

It crashed while I was using it. Oops!

Summary

Ideally, I'd like dotTrace to incorporate a source code view like ANTS Profiler. That would be perfect.