Introduction
I was lucky enough to review the last version of ANTS Profiler little more than a year ago and was thoroughly impressed by how easy it was to use and its speed. On face value the predecessor to ANTS Profiler 4 looked very much like its rivals and in many ways ANTS Profiler 3 and the likes of Jetbrains’ dotTrace product were a little too alike.
The most encouraging thing about ANTS Profiler 4 is that it has gone above and beyond that of its predecessor and rivals in terms of how you can interact with and visualize the data collected from your profiling session. New features include a timeline, the ability to add counters, interactively querying portions of your code visually, and much more.
Before we delve into the actual review a quick reminder of the general services a profiler provides is required. ANTS Profiler like other profilers provides tooling to view hotspots within your application. The term hotspot refers to the methods or chunks of your program that the most time is being spent on. They also offer the ability to profile the memory consumption that your application consuming as well. Everything mentioned thus far in this paragraph ANTS Profiler 4 provides (and much more!).
Setting up a profiling session
Just like ANTS Profiler 3 setting up a new profiling session merely consists of a single page wizard, however in ANTS Profiler 4 you now have the option of adding Perfmon counters which is of great benefit. All counters that you select will be visible on the timeline which is discussed later.
Figure 1: Wizard for setting up a new profiling session

The applications that you can profile in ANTS Profiler 4 include:
- .NET desktop application
- Windows Service
- COM+ server
- ASP.NET web app (both IIS and Cassini hosted)
Once you have decided on the application type to profile and selected the relevant counters you want to monitor then all you have to do is just hit the Start Profiling button.
The timeline
If you have ever used Perfmon before you will love the timeline. The timeline shows real-time values in the form of a graph. The counters you have selected for your profiling session populate the graph. Once your application has exited, or you have ceased profiling of the application manually you can then use the timeline to focus in on certain timeframes. I believe that this feature is the most valuable in the new ANTS Profiler product.
Figure 2: Timeline showing % of processor time

Figure 3: Adding additional counters to the profiling session

Figure 4: Timeline with additional counters

If you have a long running application then you will see the graph being populated in real-time which allows you to identify hotspots with ease.
Visualizing call graphs
Another great new feature in ANTS Profiler 4 is the ability to visualize call graphs and drill down into those graphs.
Figure 5: Drilling down into a call graph

This feature is particularly useful as it can make pretty complex call stacks like that of quick sort easy to navigate. The code I profiled was a call to quick sort on a list containing one million unordered random integers. While the call stack was fairly deep using this new feature made it simple to traverse the calls.
Another pretty cool feature of the call graph visualizer is that you can export the diagram as several formats including a PDF that is vector not bitmap based so you can view the graph in a rich medium.
Other ways to view your data
Thus far we have covered the cooler features of ANTS Profiler 4 and now we will go over the features that you will probably use the most in terms of just getting the raw data about your application profile.
Although the call graph visualizer is indeed very sleek you will still probably spend the majority of your time using the call tree and methods grid. The call tree view is the default view for a profiling session.
Figure 6: Call tree view

The methods grid gives a flat view of the methods called within the profiling session and their attributed time cost and so on.
Figure 7: Methods grid

Other improvements
I remember in ANTS Profiler 3 having several issues when profiling recursive algorithms. These algorithms weren’t operating on a large data set yet the profiler seemed to take a significant amount of time to profile the application. In ANTS Profiler 4 this problem seems to have disappeared and in general I have found the new version to be a lot quicker than ANTS Profiler 3.
Summary
While reviewing software is very much a subjective affair I can without doubt say that ANTS Profiler 4 is the most rounded .NET profiler I have ever used. Moreover, the new features added to the fourth incarnation of the product have brought with it greatly improved usability and performance gains. Profiling applications that will be released in some shape or form to the public is an absolute must and ANTS Profiler 4 is a great tool to use for such a task. I cannot recommend this product enough; it is simply the most comprehensive of its kind for profiling .NET applications.
About Granville Barnett
 |
Sorry, no bio is available
This author has published 32 articles on DotNetSlackers. View other articles or the complete profile here.
|
You might also be interested in the following related blog posts
Due Diligence and Code Comments
read more
September's Toolbox Column Now Online
read more
November's Toolbox Column Now Online
read more
AjaxView Javascript profiling
read more
June's Toolbox Column Now Online
read more
October's Toolbox Column Now Online
read more
July's Toolbox Column Now Online
read more
An Overview of Wrox Series
read more
August's Toolbox Column Now Online
read more
Load Testing vs. Profiling
read more
|
|
Please login to rate or to leave a comment.