Features
Flat method and thread activity profile lets you examine which method or thread is globally consuming the most CPU time. StackProbe shows how much time the given method is running, sleeping or waiting on a synchronized block. The flat profile list can be sorted by any of these values and filtered by package/class/method name.
Thread activity by given method report shows in context of which threads is a given method running. This is particularly useful when profiling multithreaded applications.
Callers of the method tree displays how the time spent in the examined method is distributed between its callers. The tree can have several levels, so that you can see the "grand-callers", "grand-grand-callers" etc.
Callees of the method tree displays how the time spent in the examined method is distributed between itself and the methods it calls. Again, this tree can have several levels, so that you can easily find the cause of the bottleneck.
Variable sampling frequency lets you adjust the overhead caused by the profiler to the profiled application. Low sampling rates enable extremely low overhead, but at the price of running the profiler longer to gather enough data. High sampling rates enable obtaining accurate profiling results faster.
Filtering of methods and threads can be used to achieve even lower profiling overhead and better clarity of presentation. You may filter per thread/package/class/method basis by using regular expressions.
Saving, loading and comparing profiles lets you average profiles gathered from several sessions or compare two profiles. Thus, you can easily find if the changes you have made to the code actually improved it or not. StackProbe utilizes advanced statistical tests to distinguish accidental profile changes from the systematic ones.
Remote profiling enables profiling any JMX-enabled applications running on a different computer than the profiler itself. All functions that work in the local profiling mode are accessible in the remote mode.