Today I did a short evaluation of free profiling tools. I have used Yourkit Java Profiler for some years now, and I am a big fan of it, but I wanted to give the alternatives another try.
First I had a look at Eclipse TPTP. Last time I tried (3 years ago) I couldn’t even get it to start on my Mac. This time I am working on a Windows PC, so I thought this could be better supported. I downloaded it using the update site for eclipse, and after a restart of eclipse I got a nice introduction screen saying that I can now profile applications. So, I right-clicked on a project, selected “Profile As -> JUnit Test”, and: Nothing happened. Except that after some time an exception message said that the profiler timed out. So, TPTP still sucks. BTW, I tried to search for solutions, but in the discussion forums and mailing lists are no real hints how to solve this problem.
The other tool I tried was jvisualvm, which is included in Java 6. I started it, and it found some java applications running. I launched the unit tests, and connected jvisualvm to the running tests. I got profiling results, but found no way to analyze them. Compared to Yourkit, jvisualvm is just a toy.
What I’ve learned today is that Yourkit is definitely worth the money. My advice for anyone who needs a profiling tool is: Download the trial version of Yourkit. I bet you’ll buy it after the 15 days ;)