ANTS Profiler 4.0
.NET Profiler for Performance and Memory Usage
By Steve C. Orr
Without a tool like ANTS Profiler, code optimization is often more of an art than a science. Time spent optimizing code is often wasted unless the targeted code is a clearly identified bottleneck, and trying to guess which parts of a program run most slowly is typically an exercise in futility.
Effective code optimization requires real metrics that clearly identify inefficient resource usage. Code that wastes precious memory or processor cycles should be able to be found and fixed quickly. The more laborious such tasks are, the more likely they are to be put on the back burner and that s how bloated software is born.
Speed It Up
When you start ANTS Profiler (from the Windows Start menu or from the integrated Visual Studio menu), one of your first tasks is to choose which kind of program you want to profile. You can profile desktop applications, ASP.NET Web applications, Windows services, or COM+ server applications.
ANTS Profiler observes a program as it runs, taking detailed notes about which functions take the longest to execute and which objects consume the most memory. It is not necessary to alter any of your source code to enable this analysis. Promising optimization targets are automatically identified, allowing you to drill all the way down to individual lines of offending code. Each line of code has its execution time precisely measured. The results are color coded so it rarely takes more than a glance to see which code segments need the most attention (see Figure 1).
Figure 1: Every line of code is timed during execution, and ANTS Profiler provides numerous views into this valuable data.
Version 4.0 provides a new viewpoint for observing this potentially valuable data. Call graphs provide an interactive flowchart-like view of the code execution, with performance data associated with each node in the chart. Other standard Windows performance counters also can be tracked from within this application, eliminating the need to run the Windows Performance Monitor (aka PerfMon). All performance data can be saved and exported to a variety of formats, such as PNG and PDF.
Optimize Memory Usage
In addition to the ANTS Performance Profiler software included with the standard package, customers willing to shell out a bit extra for the professional package will also get the ANTS Memory Profiler application.
As a program or Web site runs, memory usage is measured for each object instance, so you can tell where all that RAM is going. Snapshots can be taken throughout the execution of the program to reveal how memory usage changes over time. This can be pivotal for tracking down memory leaks or optimizing inefficient memory use.
I decided to try out Red Gate Software s latest tools with a slightly sluggish program I d recently created. Indeed, ANTS Performance Profiler clearly identified which functions and lines of code were the slowest. Using this knowledge, I was able to restructure my program to dramatically improve its speed. It also was able to put my mind at ease about a suspected memory leak thanks to ANTS Memory Profiler. Their software genuinely helped me improved the quality of my software, and the process was quick and easy.
Unfortunately, this newly released version of the memory profiler also crashed my computer, giving me the first blue screen of death I d seen in months. Judging from the positive track record of Red Gate Software, I d be surprised if they didn t have such nuisances ironed out by the time you read this.
ANTS Profiler 4.0 currently supports four versions of Microsoft Windows: XP, Vista, Server 2003, and Server 2008. It also supports version 2.0 of the .NET Framework all the way through the latest .NET 3.5 technologies, including Windows Communication Foundation (WCF), Windows Presentation Foundation (WPF), and Windows Workflow Foundation (WF). It will profile any .NET language not only C# and VB.NET, but also managed C++, Cobol.NET, and virtually any other .NET variation you may discover. IIS versions 5 through 7 are supported, and even ASP.NET s built-in Cassini Web server is supported. Likewise, 64-bit applications are no problem.
The ANTS Profiler Web site has some jaw-dropping features to get you started in no time. The demo videos will show you in moments how simple the ANTS Profiler program can be to use, and the walk-throughs are yet another innovative and intuitive product introduction. Of course, their Web site also contains more common support options, such as a FAQ section, knowledge base, forums, documentation, etc. Personalized e-mail and phone support contracts are also available for purchase.
The single-user price, starting at US$395 for ANTS Profiler standard edition, seems reasonable especially considering the time it saves and the dramatic performance increases in can help attain. The memory profiling is only available in the professional version, which costs US$595 and includes a profiling API. For an extra US$100 you can purchase the ANTS Bundle. This includes all of the above plus their new Exception Hunter program, which can help you reinforce your software s reliability.
Bloated software is a disease that runs rampant. ANTS Profiler is an effective cure. If all software developers were to use it, the digital world would be a better place to live. Do your part by optimizing your software creations. No longer must this be a lengthy or laborious process, thanks to tools like ANTS Profiler. I suggest you download the free 14-day trial to see firsthand what it can do for you and your code.
Price: Starts at US$395
Steve C. Orr is an ASPInsider, MCSD, Certified ScrumMaster, Microsoft MVP in ASP.NET, and author of Beginning ASP.NET 2.0 AJAX (Wrox). He s been developing software solutions for leading companies in the Seattle area for more than a decade. When he s not busy designing software systems or writing about them, he often can be found loitering at local user groups and habitually lurking in the ASP.NET newsgroup. Find out more about him at http://SteveOrr.net or e-mail him at mailto:[email protected].