ProfilerJ is completely written in Java 5.0. Most profilers require native libraries, which limits
the number of platforms which you can use them on.
Snapshots
ProfilerJ provides persistent snapshots (written to the
file system)
using XML notation.
Profiling approaches
Supports Sampling and (dynamic)
Byte-Code-Instrumentation (BCI). The latter is used to provide detailed
profiling metrics regarding
method invocation,
memory allocation,
and code coverage.
Easy deployment
No "start center" (as other profilers
have) and therefore no need to define startup procedures (classpaths etc)
twice.
Remote profiling
Agent and clients communicate via sockets. Hence, the
client (either the profilerJ GUI or the command line tool) may reside on a
different machine.
JMX support
ProfilerJ agent is a Java Management Extension and
may be managed by jconsole for example.
Sampling
On demand sampling
Sampling may be switched on and off while the application
is running.
Byte code instrumentation
On demand instrumentation
Byte code may be dynamically instrumented.
Instrumentation may be revoked at any time, modified and re-implemented while
the application is running.
Class Filtering
Complete control over which Java class files are
profiled. Filtering by class or package lets you focus on the problem at
hand, rather than being overwhelmed by too much information.
Summarize View
Quickly gain knowledge about behavior of a certain
method. The 'Summarize' view (e.g. call tree) shows merged call
traces starting from the selected method.
Zoom View
Creates a new view beginning with the selected method and
shows CPU usage calculated in percent.
Hotspots
Creates a view that shows methods sorted by various metrics (e.g. CPU-time
consumption).
Code Coverage
Class view
Quickly gain knowledge about the quality of your tests
(e.g. JUnit). The green bar shows
the coverage on a per line basis (i.e. 100% means that all executable
lines have been executed), whereas blue signal the lack of debugging
information. In the latter case, methods will "get blue" if
they are invoked at least once.
Source file view
Shows a Java source file where reached lines appear on a
green background. Not reached lines are painted on a red background.