JPerfAnal analyzes CPU usage information generated by Java's hprof profiler, turning the raw data into call graphs that slice the data in several useful ways. With JPerfAnal, you can learn where and on whose behalf your application is spending its time.
JPerfAnal slices the data four different ways, supporting detailed investigation into performance hot spots:
Method CPU usage, broken out by caller (10% of Foo.foo()'s time is spent in its call to Bar.bar())
Method CPU usage, broken out by callee (8% of Foo.foo()'s time is spent when it's called from Baz.baz())
Per-line CPU usage, inclusive of calls
Per-line CPU usage, exclusive of calls
In addition, you can slice by threads, analyzing activity in all threads, a single thread, or a subset of all the threads. The call graphs are presented using Swing's JTree component, and can also be saved as text files.
This project was originally published under the GPL as PerfAnal, accompanying my book, Java Programming on Linux. I moved it to SourceForge at the end of 2001 to make it more visible to those who don't have the book or happen to visit its Web site.
SourceForge project site: http://sourceforge.net/projects/jperfanal/.