Click here to monitor SSC

Bart

Software Engineer - Red Gate Software

T Minus 4 Weeks: ANTS Memory Profiler 5 and ANTS Performance Profiler 5 Betas Now Available

Published Friday, May 15, 2009 4:40 PM

Red Gate's performance and memory profilers may have gone through a complex and protracted divorce, but they're still the best of friends...

Within the next few weeks the new versions of our, now separate, performance and memory profilers will be ready for launch. We've made a few tweaks to ANTS Performance Profiler, and added a new profiling mode which makes it even faster, but the real star of the show this time around is ANTS Memory Profiler. Just like the performance profiler last time around, we've completely rewritten it.

You can download the betas via:

http://www.red-gate.com/MessageBoard/viewtopic.php?t=8949

We've also updated the memory profiler tutorial video, available on YouTube at:

http://www.youtube.com/view_play_list?p=0589CFA7EB46587E

If YouTube is blocked, or you'd prefer a higher resolution version, you can download the whole video from:

ftp://ftp.red-gate.com/ANTSMemoryProfilerBeta/Tutorial_HowToFindAMemoryLeak_Full_Video.wmv

A rewrite is always a risky endeavour and, although we've done it before, it's not something we're casual about. This time, much more so than with the performance profiler, our hand was forced because the architecture of the pre-v5 memory profiler was too restrictive and insufficiently robust to handle some of the demands we were planning to place on it.

Doing this has enabled us to create a memory profiler which imposes minimal overhead on the profiled application-in fact the performance hit is barely noticeable most of the time. Not only that, but we've vastly reduced the memory overhead as well, and whilst it's not possible to impose a hard limit, ANTS Memory Profiler 5 generally won't use much more than 32MB in the target application; previously the memory usage of the application could easily double, or more. No other .NET memory profiler can make these sorts of claims.

Here's a rundown of the major features:

  • Unparalleled performance,
  • Ability to take and analyse an arbitrarily large number of memory snapshots,
  • Support for snapshots up to 2GB (32-bit operating systems), and 4GB (64-bit operating systems),
  • Arbitrary snapshot comparisons,
  • Summary information for profiling session, individual snapshots, and snapshot comparisons,
  • Large object heap fragmentation statistics,
  • Extremely powerful filtering options to narrow down results to the objects you really need to know about,
  • A unique class graph view allowing you to quickly see where instances of a given class are being referenced,
  • A unique object retention graph, showing why objects are still held in memory, so you can find the reference chains you need to break in order to free your objects,
  • The ability to profile .NET executables, ASP.NET applications and web services in IIS and web development server, services, COM+ applications, and XBAP applications.

The take home message from all of this is that if you need a memory profiler, you need ANTS Memory Profiler 5. Some of you may already have tried and rejected previous versions of our memory profiler, but the time has come to think again. ANTS Memory Profiler 5 is a completely different product and, frankly, it destroys the competition.

Since a picture often is worth a thousand words I'm going to largely shut up and show you some screenshots of the new memory profiler. Where it makes sense I'll also show shots of the old profiler for comparison.

Figure 1a. The one-step setup dialog from ANTS Performance Profiler has made it in to the memory profiler.

 

Figure 1b. The old setup wizard from the pre-v5 days. It had served us well but the time had come to put it out to pasture.

 

Figure 2. Profiling our application; this will look familiar to anyone who's used ANTS Performance Profiler 4.x.

 

 

Figure 3a. The new snapshot summary view; so far I've taken two snapshots.

 

Figure 3b. The old summary view; note the lack of comparison information.

 

Figure 4a. The new class list: lots of visual cues to make interpretation easier, and plenty of filtering options.


Figure 4b. The old class list: much more workman-like, and lacking a lot in terms of filtering (it's also hard to find). Realizing this was a problem we completely revamped filtering for version 5 to make it more powerful and easier to use.

 

  

Figure 5. The brand new class reference graph. It's somewhat similar to the call graph in ANTS Performance Profiler in the way it presents information, except that it shows where most of the references to a type are coming from, and going to, rather than showing which methods are responsible for most of the CPU time for a particular method. It's one of those views that can be initially daunting but, once you've wrapped your head around what it's showing you (which doesn't take long), quickly becomes indispensable.

 

Figure 6. Here's the really cool thing about the class reference graph: clicking on the "Show instances of this class on this path" will show all the instances of System.Data.DataTable that are on the reference path pointing to my RBNode<...etc...>s in the centre (see figure 5).

 

Figure 7a. The new object list. The "Size with children" column allows you to quickly see which objects are responsible for hogging the most memory.

 

Figure 7b. The same view from the v4 memory profiler. Again, it has a rather sparse and functional feel. I've grouped by "Comparison" to help me identify new objects. In the new version there's a filter for this, which makes things much clearer. Also note that in v4 you really are seeing all the objects. In v5 you view objects by type, which really cuts down on the clutter.

 

Figure 8a. The object retention graph. This is the view that shows you why an object is still in memory and is essential when tracing memory leaks, so you can fix them. The principle is simple: once you've found out what's holding your object in memory just break the chain of references after that point and the garbage collector should be able to clean up your object. In this case we can see that my DataTable is being kept in memory by a member called Foregrounded (actually an event) on ConnectForm.

 

Figure 8b. The hierachy view in the v4 memory profiler: you had to use this to try to find out what's holding your object in memory. For simple applications a bit of trial and error means you can sometimes find out what's going on but, for more complex applications, whilst you might get lucky, you probably have more chance of winning the National Lottery.

 

Figure 9. Those filtering options in more detail: sweet.

 

Figure 10a. The new timeline, which allows you to compare arbitrary snapshots: here I'm comparing my third and fifth.

 

      

Figure 10b. The old snapshot chooser. You can only compare a snapshot to the immediately preceding snapshot, so here I'm comparing my second and third snapshots.

 

Hopefully those screenshots, at least the ones of the new memory profiler, have whetted your appetite. You can get the beta right now via:

http://www.red-gate.com/MessageBoard/viewtopic.php?t=8949

As the title of this post implies, we're expecting to put the final release out in roughly four weeks. In the meantime, enjoy!

Comments

 

Jason Haley said:

Interesting Finds: May 16, 2009
May 16, 2009 9:46 AM
 

etaylor said:

Awesome!  Can't wait!  But I have a question: By "unparalleled performance" do you mean that you are not using multiple threads? ;)
May 27, 2009 11:24 PM
 

Bart said:

Both release candidates are now available, both work with CLR 4.0, and we've got a funky new YouTube...
June 1, 2009 7:11 AM
 

Bart : ANTS Memory and Performance Profiler 5 Release Candidates b…/b « Windows 7 Live Info said:

June 1, 2009 11:03 AM
 

1967 Harley Davidson Electra Glide Dual Exhaust, Electra Bike Parts Comfort Cyclery said:

May 20, 2010 1:51 PM
 

B2000 Discount Mazda B3000, Mazda B2000 Cars Sold said:

May 21, 2010 3:04 AM
 

280zx Gig, 240z 260z 280z said:

May 21, 2010 5:05 AM
 

1969 Chrysler Newport Parts Vin, Chrysler Newport Part Power Steering Pump Direct said:

May 21, 2010 6:05 AM
 

262 2nd Hand Equipment, 262 Radiator Fit Pickup said:

May 21, 2010 6:36 AM
 

Aerio Custom Wheel Covers Universal, Sidekick Radiator Suzuki Aerio Silla said:

May 21, 2010 4:33 PM
 

Part 1998 Bmw 318ti Styling, 318ti Abs Light Bmw 323i said:

May 21, 2010 7:45 PM
 

1996 Bmw 328i Repair Manual, 328is Bulb Rear Bumper said:

May 21, 2010 10:37 PM
 

Epson Stylus Cx7450 Reviews, Stylus Party said:

May 22, 2010 12:54 AM
 

1992 Oldsmobile Toronado Parts Cutlass Ciera, 1975 Salon 1987 Oldsmobile Cutlass Parts Car said:

May 22, 2010 1:01 AM
 

Cl55 Sale Used Mercedes Benz Cl65 Amg, Mercedes Benz Cl65 Amg Discount Prices V12 Biturbo said:

May 22, 2010 12:57 PM
 

620 Part Used Nissan Pickup Truck Datsun, Datsun 620 Wiper Blade said:

May 22, 2010 2:06 PM
 

Buy Plymouth Acclaim Fleet Car Chrysler Lebaron, Sale 2nd Hand Gran Fury Plymouth Acclaim said:

May 22, 2010 2:52 PM
 

Lexus Is 220d Se, Discount Mercedes Benz 220d said:

May 22, 2010 5:28 PM
 

Koei Dynasty Warriors 3, Amazon Dodge Dynasty Shock Absorber said:

May 22, 2010 9:02 PM
 

Camry Milwaukee Used Toyota Highlander Hybrid, Repair Manual Toyota Camry 2005 Color Spark Plug Diagnosis said:

May 22, 2010 10:08 PM
 

Precis User Guide Fixed, Precis Discount Music - 485.ja3ra.com said:

May 22, 2010 11:47 PM
 

535is Bulb Fog Light Sylvania, 535is Pet Hammacher Schlemmer - 97.zapstreaming.com said:

May 23, 2010 12:20 AM
 

Saturn Lw200 For Sale, Lw200 Hid Accessories - 369.zapstreaming.com said:

May 23, 2010 5:02 AM
 

Order 524td Replacement, 524td Part Catalog 1986 Bmw - 328.mfbattle.com said:

May 23, 2010 7:35 AM
 

Concorde Parts Lowest Price Brake Pads, How To Change Headlights Chrysler Concorde - 33.dlmreza.net said:

May 24, 2010 9:11 AM
 

Sc430 Hid Oem, C43 Amg Promotion Auto - 411.renters.ws said:

May 24, 2010 9:31 AM
 

Reliant Boiler Seward Station, Promo 1991 Jeep Grand Wagoneer Fuel Injection - 59.akemet.com said:

PingBack from http://59.akemet.com/
May 24, 2010 2:24 PM
 

1983 Bmw 733i Specs, Parts Free Shipping Bmw 733i - 206.ja3ra.com said:

May 24, 2010 2:57 PM
 

720 Pickup Car Radiators, Pickup Taillight 1985 Nissan 720 - 39.tijuanareader.com said:

May 24, 2010 5:06 PM
 

Mercedes Benz C220 Sale C55 Amg C350 Sport, C55 Amg Coupon 2005 Porsche - 110.animejin.com said:

May 24, 2010 11:23 PM
 

Fiero Brake Upgrade Suspension, Aftermarket Auto Parts New Pontiac Fiero - 327.rkwrh.com said:

PingBack from http://327.rkwrh.com/
May 25, 2010 3:46 AM
 

Mercury Mystique Parts Brake Pads Fender Trim, 1998 Mercury Mystique Problems Timing Belt - 423.computeronlinebingo.com said:

May 25, 2010 6:56 PM
You need to sign in to comment on this blog

About Bart Read

Bart has done many things since he started work at Red Gate Software Ltd in August 2004, but nowadays he's (mainly) the product manager for the .NET Developer Tools. He still feels like this is a bit like admitting you were cheering for the Empire whilst watching Star Wars, but for now he's along for the ride. In a previous incarnation he was a project manager leading the .NET Reflector Pro, ANTS Memory Profiler 5, ANTS Performance Profiler 4 & 5, and SQL Prompt 3.0 - 3.6 projects. He still occasionally writes some code and, in the past, has touched the code for most of the Red Gate SQL developer tools... some of them still haven't recovered from the shock. He was born and grew up in Dorset, was educated in Nottingham and London, and likes music and real ale. His photo is extremely misleading.
<May 2009>
SuMoTuWeThFrSa
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456
How to Kill a Company in One Step or Save it in Three
 The majority of companies that suffer a major data loss subsequently go out of business. Wesley David... Read more...

Migrating from OCS 2007 R2 to Lync: Part 4
 Having migrated the rest of our users and legacy resources across and started getting ready to... Read more...

Automated Script-generation with Powershell and SMO
 In the first of a series of articles on automating the process of building, modifying and copying SQL... Read more...

Seth Godin: Big in the IT Business
 Seth Godin has transformed our understanding of marketing in IT. He invented the concept of 'permission... Read more...

Using SQL Test Database Unit Testing with TeamCity Continuous Integration
 With database applications, the process of test and integration can be frustratingly slow because so... Read more...