http://memprofiler.com/
I really like this tool for memory key feature for me is the ability to load a memory dump. If you aren't using them yet I would highly recommend reading up on them and SOS as they are your best tools for looking at memory usage.
Personally I am not really fond of any of these tools for performance tuning. Why? Because they all suffer from the uncertainty principle, they change what you are measuring when they inject your code. As a perfect example... It would say this is slow
public class Flock {
private int numberOfBirds;
private decimal [,] someMatrixOfBirdData;
public int NumberOfBirds { get { return numberOfBirds(); } }
.
.
.
for(int i=0;i < this.NumberOfBirds; i++) {
//do something with birdmatrix
}
it will report this as being really slow because when it injects code into the NumberOfBirds property at runtime it makes it so inlining no longer happens on the property. The inlining not happenning causes the condition to no longer be hoisted out of the loop. This in turn causes the method to be called on every iteration.
These may seem like minor things but they can easily add up.
Personally I use aspects to drop in measurements at higher level places and have some custom code for measuring other things that I use for performance testing. Once I identify an area thats slow, finding the cause is usually the easy part :)
Main Topics
Browse All Topics





by: dstanley9Posted on 2007-08-28 at 11:18:54ID: 19785556
I love ANTS Profiler. I don't use it for memory usage, but it works great for finding slow functions and helping to tune code.