Red Gate Software
Price: $295 Single User
|Quick Facts: Powerful and extremely simple to use performance and memory profiling tool for .NET applications that measures execution timings down to individual lines of code and memory usage down to individual objects.|
ANTS Profiler 1.x is one of my favorite development tools. ANTS Profiler 1.x is a performance profiler that has made it easy for me to find performance bottlenecks in .NET applications. I have used it regularly since its release the summer of 2003.
ANTS Profiler 2.0, released November 2004, adds extremely easy to use memory profiling to this product, plus new ways to analyze profiling results - all for the same low price as the original ANTS Profiler 1.x.
ANTS Profiler's performance profiling feature gives you line level timings, line level hit counts, source code displayed alongside detailed results, listing of top 100 functions, thread specific results, and process specific results.
The process of collecting and analyzing performance data in ANTS 2.0 works almost exactly the same as it did in ANTS 1.x. It is easier than ever to drill right down into the slowest methods and slowest lines of code in an application.
Click here to read my 2003 review of using the profiling features in ANTS Profiler.
Memory profiling is new in ANTS Profiler 2.0. Memory profiling let's you see how your application uses memory by capturing snapshots of the memory used by your classes and objects, and helping you analyze the results.
Red Gate Software has made it extremely easy to profile memory usage. Thanks to a profiling wizard and a fast, easy tutorial about memory profiling, it took me about 15 minutes to start examining memory utilization in one of my Windows Forms applications.
Here is a recap of the simple steps necessary to use ANTS Profiler 2.0 to profile memory for a Windows Forms application.
1. Start the Profiler Project Wizard by selecting the ANTS Profiler 2.0 File -> Project wizard menu item.
The first step of the Profiler Project Wizard will open:
2. Click the Profile memory radio button. Click the Next button to advance to the next step in the wizard. The second step of the Profiler Project Wizard will open:
3. Click the .NET desktop application radio button. Click the Next button. The third step of the Profiler Project Wizard will open.
4. Click the button next to the .NET desktop application combobox.
The Application to profile dialog window opens.
5. Use the dialog window to browse to a .NET Windows Forms .EXE file. Select the .EXE file. Click the Open button. This will return you to the Profiler Project Wizard window. Click the Finish button to advance to the next step in the wizard. The fourth step of the Profiler Project Wizard will open.
6. Click the Yes button to begin profiling the application. An ANTS Profiler reminder window opens.
7. Capturing memory usage data is done by starting the application from ANTS, using the parts of the application you wish to profile, and periodically taking snap shots of memory. Click the OK button. ANTS Profiler will start the application.
8. Use the parts of the application you wish to profile. Periodically switch to ANTS Profiler and take a snapshot of memory.
9. Step five is to stop the profiler after you have collected enough data and to analyze the snapshots you took.
Analyzing the Results
The first results to check are the Summary, Biggest Live Objects and Classes With the Most Live Instances for each snapshot you took.
(click for a full-sized image)
I found these high level results were enough to identify memory management issues in three applications I tested.
Next you can choose a variety of tools, views, and filters to drill down into the objects using the most memory:
'Snapshot' of ANTS Profiler 2.0 Features
It would take too many screen shots and explanations to show all the ANTS Profiler tools, views, and filters available to analyze how an application performs and how it uses memory. As this is a review and not a "How-To" article, I will review just a few of the dozens of useful ANTS Profiler 2.0 features I found very useful.
The user is now able to take a snapshot of their application, for performance or memory profiling, while the application is still running. This gives the ability to selectively collect performance and memory data. For example, a user could choose to start profiling, use the application, and at a point in time start taking snapshots of the performance/memory data. As snapshots are taken they show up in the Results pane of ANTS Profiler like this:
The snapshot list is used to navigate through the snapshots taken. The user clicks a snapshot in the list to view the performance or memory results behind that snapshot. NOTE: Snapshots can be removed from the snapshot list making it easy to remove 'mistakes' and irrelevant data.
Disable Profiling Feature
Now the user can control WHEN performance profiling data is logged. The user can disable/enable performance profiling while the application is running.
Reset Profiling Feature
The Reset Profiling feature allows the user to reset profiling while the application is still running. This feature is useful when profiling a web application because it eliminates the need to keep starting and stopping IIS. This streamlines the profiling process.
User Interface Features
The new ways a user can customize the interface makes it easier to get to the results that matter. The web front end used in previous versions of ANTS Profiler has been replaced with a more standard desktop application.
The new user interface allows a lot more customization - for example, the user can choose what results to display and how to group them.
The ability to control different views of the profiling data collected is important given the complexity of profiling data. ANTS Profiler very effectively utilizes Windows form panes, making it easy to hide, show, move, and control the behavior of these views: Summary, All Objects, All Classes, Source Code, Hierarchy, Results, and Call Stack. Of special note is the ability in grid views of the data collected to organize results by grouping by one or more criteria.
Forward and Back buttons have been added for easier navigation through the objects the user has been viewing.
The Bottom Line
The bottom-line: Within six minutes I set up, tested, and profiled memory usage of one of my Windows applications. In another five minutes I drilled down into the objects using the most memory and found two classes that needed to be modified to be more memory efficient.
I suggest you visit the Red Gate Web Site, study the product information, download the free trial, install it, and find out what ANTS Profiler 2.0 can personally do for you.
Explore the Red Gate Software Web Site
Take 60-90 minutes at the Red Gate Software web site to drill down into enough detail to understand the ANTS Profiler 2.0 product. Visit the link below to get started.
Red Gate Software Code Profiling
Download and Install ANTS Profiler 2.0
You can download and install ANTS Profiler from the Red Gate Software site and install it on your computer in about 5 minutes.
The installation is simple - just run it and wait until it is finished. There are no special setup steps or configurations to be made. Visit the link below to download a trial copy.
ANTS Profiler Trial Download
Complete the ANTS Profiler Tutorial
Included in ANTS Profiler's Help are two simple, fast tutorials. One tutorial teaches you how to profile performance, the other, how to profile memory.
Version 2.0 ANTS Profiler delivers powerful code and memory profiling through easy to use interfaces and result views that pin point problem areas quickly. It is easy to learn, easy to use, and very effective at identifying the performance and memory issues of most concern to Microsoft.Net programmers.
If you don't know where your applications have performance issues or where it uses too much memory, ANTS Profiler 2.0 is a cost effective way to find out.