Java Profiling

Syrous and I went around the company yesterday looking for a profiling tool. It seems we don’t have a standard tool which we used for profiling, so we decided to post our experience using TPTP (Eclipse Test and Performance Tools Platform) 4.2.

A few suggestions we had were before deciding on TPTP were Eclipse Profiler, JProbe (apparently we have an outdated licensed version somewhere), and JProfiler.

You can generated csv, xml, and html reports with TPTP. You can apparently generate nifty graphs if you add additional plugins. (But we decided not to go so far since we were just checking which spots were having performance hits.)

You can profile by memory, execution time, and by the method code coverage. There are filters provided so if you find the profiler hanging and consuming your CPU. You can filter by class, method, limit the number of method invocations, and force profiling to stop after a specified number of seconds.

In some cases, accidentally clicking Refresh instead of Refresh Data on the profiling data would wipe all our data, and terminating our server through the profiling manager would take xeons forcing us to kill Eclipse. (At least the data reappeared when we reloaded eclipse.)

Profiling our server was slightly tricky to figure out, but we included the procedure in our document. (We had to run the server with a certain VM argument and get TPTP to attach a probe.)

Overall we did like using TPTP and do recommend it for profiling.

We’ve posted a small manual on TPTP here for the quick and easy installation and optimization.

Here are some examples of output we generated:
CSV Example | XML Example | HTML Example

For more information about TPTP, look here.

It's only fair to share...
Share on FacebookGoogle+Tweet about this on TwitterShare on LinkedIn

Leave a Reply