JProfiler API

JProfiler API documentation

This documentation specifies the public API for controlling offline profiling, writing interceptors and the profiling platform that is part of JProfiler.

See:
          Description

Packages
com.jprofiler.api.agent This package contains the controller class for offline profiling.
com.jprofiler.api.agent.interceptor This package contains all classes required for developing interceptors.
com.jprofiler.api.agent.mbean This package contains JProfiler's controller MBean for offline profiling.
com.jprofiler.api.platform.connection This package contains classes for establishing a connection to a live profiling agent or a snapshot file.
com.jprofiler.api.platform.data This package contains classes that encapsulate profiling data.
com.jprofiler.api.platform.descriptors This package contains classes that represent different types of nodes in call trees.
com.jprofiler.api.platform.parameters This package contains classes that represent parameters for requesting profiling data from a connection.
com.jprofiler.api.platform.structures This package contains data structures that are used by both profiling data and request parameters.
com.jprofiler.api.platform.util This package contains utility classes for working the platform API.

 

This documentation specifies the public API for controlling offline profiling, writing interceptors and the profiling platform that is part of JProfiler.

Offline profiling

Offline profiling allows you to control certain aspects of the profiling agent at runtime. "Offline" refers to the fact that the JProfiler GUI does not have to be connected to the profiled process while profiling data is being recorded and snapshots are saved.

Please read "Reference->Offline profiling" in the documentation (directory $JPROFILER_HOME/doc or F1 in the JProfiler GUI) for an overview on how to use the Controller API and consult the javadoc for com.jprofiler.api.agent.Controller.

$JPROFILER_HOME/api/samples/offline contains a sample program that shows how to use offline profiling. The ant build script in that directory compiles and runs the sample.

Classes required for offline profiling are contained in $JPROFILER_HOME/bin/agent.jar.

Interceptors

Interceptors allow you to add functionality similar to the built-in JDBC, JNDI and JMS profiling in JProfiler. With interceptors you can intercept calls to arbitrary methods, inspect parameters, return values, thrown exceptions and add payload information to the current call stack. Payload statistics are shown in the "Call Tree" view and each payload type contributes a hot spot type to the "Hot Spots" view.

The javadoc for com.jprofiler.api.agent.InterceptorProvider explains how to add interceptors to the runtime, com.jprofiler.api.agent.Interceptor is the starting point for learning more about interceptors.

$JPROFILER_HOME/api/samples/interceptor contains a sample program that shows how to write a simple interceptor. The ant build script in that directory compiles and runs the sample. A different example for an interceptor is contained the platform example (see below).

Classes required for interceptors are contained in $JPROFILER_HOME/bin/agent.jar.

Platform

JProfiler is built on a profiling platform that allows you to write custom profilers. A custom profiler can analyze the JVM it is running in, one or multiple remote JVMs or saved snapshot files. In a custom profiler you have programmatic access to the profiling data through the platform API.

The javadoc for com.jprofiler.api.platform.connection.ConnectionFactory presents the entry point for writing a custom profiler. com.jprofiler.api.platform.connection.Connection is the main interface between the custom profiler and the profiling agent.

$JPROFILER_HOME/api/samples/platform contains a sample program that shows how to write a custom profiler. The ant build script in that directory compiles and runs the sample.

Classes required for the profiling platform are contained in $JPROFILER_HOME/bin/platform.jar. The platform API is written for Java 1.5 applications. If you require the platform to run under Java 1.2, 1.3 or 1.4, you can use the retro-weaved $JPROFILER_HOME/bin/platform_java_14.jar archive instead.


JProfiler API