I have an application that I am trying to squeeze every last drop of performance out of, So I am looking for a profiler that can give me some sort of info on where my bottlenecks are. I have seen a couple out there that give line by line speeds or method speeds (ANTS and the profiler with VS 2010 Premium), but since they are all pretty expensive, I would like to know which would be the most helpful for this sort of thing. Any recommendations?
closed as off topic by Robert Harvey, Anna Lear♦ Sep 2 '11 at 19:49
Questions on Programmers Stack Exchange are expected to relate to software development within the scope defined in the FAQ. Consider editing the question or leaving comments for improvement if you believe the question can be reworded to fit within the scope. Read more about closed questions here.
We use Redgate Ants Profiler.
Please note I do not work for Redgate, just saying what we use. It has helped us a few times identify poor performing code when a customer reports something is slow.
Our shop only bought one license because we don't use it every day, so we have one machine that can do the profiling as necessary. Probably helped us sort out 1/2 dozen to a dozen performance issues. In general it can also be used for refactoring, which we have done on a few occasions. We have found that several methods where redundant when profiling because of poor coding/design. Its not an everyday tool for us, but a valuable one.
I have had great success with Equatec's Profile: http://www.eqatec.com/Profiler/
It's free, but they also sell a lot of analyses tools which are very handy.
dotTrace is another good option, and is a bit cheaper than some of the alternatives because it is newer.
What I recommend may be a bit of a mind-shift for you, but I and others rely on it.
The existing mindset says Measure.
So fine, you Measure.
The different mindset does not say Measure - it says ask this question:
So, rather than getting a bunch of measurements, you wait until it's being slow, pause it, and thoroughly investigate what it was doing, and why, at the moment you paused it, just as if it were an actual bug.
You do this more than once - a small number of times. (That's critical.)
And here's the kicker:
Rinse and repeat.
|show 4 more comments|