|
JProfiler API | ||||||||
PREV NEXT | FRAMES NO FRAMES |
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 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 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.
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 | ||||||||
PREV NEXT | FRAMES NO FRAMES |