I've been tasked with improving the performance of a piece of software at work, which means I need to find a profiler- not only to help track down problematic code, but maybe even more importantly, to measure how much I've actually improved the system.
There are some basic things I could do, such as timing how long it takes for a method to run (or how long it takes to run 1000 times). However, the systems at work are not the most reliable machines, so that type of performance can depend on how many people are using a machine, what processes are running, which direction the wind is blowing at that moment, etc. So in a perfect world I'd find a profiler that will give me data that's more useful than raw times.
I'm usually an opponent of optimization (unless things are unusable, and in this case they are), so I don't really know anything about profilers. I'm using a program called FindBugs that will point out potentially crappy pieces of code, but I'm still not quite sure how to actually measure the performance. I've looked into JProfiler, but that's apparently not free.
I'm going to send out an email at work asking their opinion, but I thought I'd check here to see if you guys have any experience with something I haven't heard about. Thanks for your time.