tags:

views:

285

answers:

3

I'm looking for a tool ($, free, open source; I don't care) that will allow me to view not just the memory statistics for a .NET program, but also the object hierarchy. I'd really like to be able to drill down each thourgh each object and view it's foot print, as well as all the object's it references.

I've looked at things like Ants Profiler from RedGate, but it's not quite what I want: I can't view specific instances.

EDIT: I've used the .NET Memory Profiler (the one that ships with visual studio, and the one that used to be part of the SDK (?))before, and while it's really good (and shows views most other don't), what I'm really after is being able to drill down through my object hierarchy, viewing each object instance.

A: 

JetBrains dottrace profiler is the best. I wouldn't work without it. It is hard to find a tool that is free and performs well in this arena. Dottrace is hands down the best profiler I have used for .Net.

Dale Ragan
A: 

There's also the Microsoft .net profiler - I've used it a bit, and it's not bad for a free tool. Not sure if you can walk the object hierarchy, but does break down memory use by type, and over time. You can even see the underlying data.

It does slow down the app a lot, though.

chris
+4  A: 

I have used JetBrains DotTrace and Redgate Ants, both of which I would recommend. A lesser known profiler I have also used is .Net Memory Profiler (http://memprofiler.com/), which at the time I used it provided a different perspective on memory usage than the former two profilers mentioned. I find DotTrace and Ants to be very similar, though each one is slightly different.

Peter Meyer
The .NET Memory Profiler ended up being much more useful in the long run than the JetBrains dottrace profiler. It had all the info I needed. However, it does have such a huge amount of info that it feels a bit overwhelming at first.
Jon Dewees
I recall the same thing when I first started using it. Then, once I got past that barrier, it really provided some useful information.
Peter Meyer
Every time I use this I feel like upvoting your answer. .Net Memory profiler is just exactly what I need in a profiler.
Jon Dewees
Hey! Thanks Jon! As I recall, this profiler did an awesome job for me, too.
Peter Meyer