Review: ANTS Profiler
ANTS Profiler 2.00
Red Gate Software
Cambridge, United Kingdom
+44 870 160 0037
ANTS Profiler is one of several products from Red Gate designed to help
the .NET developer put together professional applications. As the name
will probably tip you off, this one is for profiling your .NET code.
Specifically, it will allow you to track either the execution time or
the memory footprint of a .NET application, and presents the results to
you in an easy-to-use form.
ANTS Profiler is super-easy to use. To get started, you launch a wizard
which begins by letting you choose whether to profiler performance or
memory. Then you select the type of application: desktop .NET, ASP.NET,
or COM+ server. Pick the application, and you're off. ANTS Profiler
instruments everything and lets you interact with your application
relatively normally (the only difference you'll notice is that the
application will be slower than usual due to the monitoring overhead).
When you close the application, the results come back. If you're looking
at performance, you can see how many times each call was executed and
how much clock time it took. Clicking on a method drills right into the
source code (assuming you're working with a debug build, so that source
is available) and you can actually follow the timings down to individual
lines of code. If you're looking at memory, you get to see which objects
are allocated the most often and how much memory they take up.
2.0 adds some polish to an already-fine product. You can now pause and
restart the profiler, making it easier to focus on a part of your
application that you want to watch. The memory profiler is new, and the
user interface has been polished up. You can also export the actual
profiling data as XML for further analysis in other applications.
Overall, ANTS Profiler is quite nice to work with. It's easy to see
patterns in large amounts of data, and to focus in on trouble spots. The
ability to filter by thread is handy, and being able to start profiling
when you're at a critical point is a real advance. If you're having
performance issues with a .NET application, you really need a tool like
this; otherwise it's far too easy to waste your optimization effort in
places where it doesn't matter.
Mike Gunderloy has been developing software for a quarter-century now, and writing about it for nearly as long. He walked away from a .NET development career in 2006 and has been a happy Rails user ever since. Mike blogs at A Fresh Cup.