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.

About the Author

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.