Review of Redgate ANTS Performance Profiler 6

Enter EggHeadCafe's free drawing (bottom of the page) to win a license of Redgate ANTS Performance Profiler 6 tool that enables developers to determine where their applications are really spending their time. ANTS Performance Profiler can be used either within the Visual Studio IDE or as a stand-alone application to analyze your application in its runtime environment.

You are a .Net developer, and your application is behaving poorly. One might think that having written the application yourself, you could diagnose the issues. Yet, real-world programs are complex enough that it's unlikely even the application author himself can fully understand how the code performs under production use. You need a specialized tool to really find out what's happening in your application, where, and how often.

The Redgate ANTS Performance Profiler 6 tool enables developers to determine where their applications are really spending their time. ANTS Performance Profiler can be used either within the Visual Studio IDE or as a stand-alone application to analyze your application in its runtime environment.

The latest .NET profiler features “attach to process”, giving developers a way to profile performance of a live website with little or no overhead to affect results.

The ability to attach ANTS Performance Profiler 6 to a live production ASP .NET website enables developers to profile performance without going offline, saving time and ensuring that profiling data reflects real-world user experience. It’s just one major addition to what Red Gate believes is the most complete .NET performance profiler ever. Other new features in ANTS Performance Profiler 6 include:

  • Profiling of SQL and I/O performance, providing a complete picture of application performance.

  • Automated profiling via the command line, integrating profiling into the application build process.

  • Near-zero overhead mode, giving users a choice of profiling with fast sampling or detailed instrumentation.

  • Silverlight performance profiling for the increasing number of developers gravitating toward this popular Microsoft technology.

  • Support for .NET 4 and its new features.

Startup Options

You can choose from:

.NET Executable
ASP.NET Web Application (IIS)
ASP.NET Web Application (WebDev server)
Silverlight4 Browser Application
Windows Service
COM+ Server
XBAP (local XAML browser application)
Attach to a .NET 4 process

It is said that the number one rule of profiling is that the bottleneck is never where you think it is. What makes ANTS Performance Profiler 6 so valuable to us is that it aggregates all of our common performance bottlenecks – web server application code, disk I/O and database – into a single view.

Another big advantage is that the SQL Server section of ANTS automatically shows us the longest-running stored procedures.

The timeline makes it really easy to filter down to the performance data you're looking for—just click and drag over the region of interest.

The call tree shows you straight away the most expensive stack trace through your application, and if you’ve selected the right time region, that’s where your performance problem is going to be.

The call graph is a great visual representation of what your app is doing , and it makes it really easy to understand performance data in context for individual methods.

It’s also great for showing to managers or customers – because you can print and export the diagrams.

During the profiling session, ANTS Performance Profiler displays a graph showing key performance variables such as I/O and CPU usage. But it's when you stop your profiling session that the software reveals its full potential. In addition to providing you with an overview of where your application spends its time, the tool also allows you to drill down to individual methods and even lines within methods. You can see how many times any method or line was called and how long, on average, each took to execute.

ANTS Performance Profiler will probably do everything you need out of the box. However, you can pick and choose which performance measures you're interested in or insert instrumentation into your application to add markers to the log created by the software. You can also have ANTS Performance Profiler keep an updated log of your application's activity, which is useful for problems that only occur when an application is running for long periods of time.

ANTS Performance Profiler Pro:
Supports .NET executable, Windows service, COM+ Server and ASP.NET web applications (including multi-threaded applications)
Line-level code timing (instrumentation)
Sampling profiling mode
Timeline for viewing the profiling data just for a selected region of activity
Call Tree which auto-expands the worst performing stack traces
Silverlight 4 support
Attach to a running process
SQL and I/O profiling
Command line access
Call Graph view for visualizing all the callers and callees for a particular method
Profiling child processes
Save profiler results
Export profiling results
Find / filter functions

Check out this Walkthrough at Redgate


Include source code with saved results
Includes the contents of source files when you save profiling results. This means that you can review line-level performance data in saved results, without having to restore your source files to their original state.
You may want to clear this option if, for example, you need to distribute performance profiling results for an application that has confidential source code.
By default, this option is selected.

Enable inlining
Enables inlining of methods by the .NET JIT compiler, for the process being profiled.
If you are profiling the release build of an application, selecting this option will produce a profile that is closer to the "real-world" performance. However, the accuracy of the results will be reduced. In particular, line-level timings will be distorted, hit counts will not be recorded for inlined methods, and time spent in inlined methods will be reported as part of the calling method.
By default, this option is not selected.

Adjust timings to compensate for overhead added by the profiler
Adjusts timings by estimating the influence the profiler has had on the process being profiled, and subtracts this from the profiling results. This estimate is most accurate when you use a profiling mode that does not collect line-level timings.

The design of modern processors means that this estimate may not always be accurate, especially for short function calls.

By default, this option is selected.

Simplify very complex stack traces to save memory
Summarizes complex stack traces in profiling results. This conserves resources on the machine you are using for profiling. The stack traces that are summarized are unlikely to be important to your profiling results. However, if you wish to see these summarized results, you can clear this option.

Clearing this option can significantly increase the memory required by the profiler. Depending on the application you are profiling, the profiler may become unstable if you clear this option.

By default, this option is selected.

Avoid profiling extremely trivial functions
Prevents profiling of methods that have a running time measured in tens of nanoseconds, and which contribute to less than one-billionth of the run time in total. Typically, these methods do not produce very relevant performance data. Ignoring these methods reduces the amount of memory required to store and process profiling results.
By default, this option is selected.

It's one thing to write software that compiles and "works".  It's an entire other ball game to write software that performs and scales. ANTS Profiler can help you achieve that goal in a very big way.

Redgate's ANTS Performance Profiler 6 is easy to learn to use and the features are both robust and intuitive. I can confidently recommend this product to any professional developer who is interested is producing high-performance, scalable applications.

ANTS Profiler is included in the .NET Bundle at $795 (which also includes ANTS Memory Profiler, Exception Hunter and Reflector Pro), or as the standalonePro ($595) or Standard ($395) offering. You can see a comparison grid here.

By Peter Bromberg   Popularity  (7672 Views)