Name: gh8910 Date: 02/18/2002
The specification will be for APIs to extract profiling information from a
running Java[TM] virtual machine. Both time and memory profiling will be
supported. Both sampling and exact mechanisms will be supported. The APIs will
be designed to allow implementations which minimally perturb the profile. The
APIs will allow inter-operability of profiling and advanced garbage collection
technologies. The APIs will allow reliable implementation on the widest range
of virtual machines, part of which will be achieved by grouping functionality
into optional sets.
Queries for which optional capabilities are supported will be provided. An API
will be provided by which containers may bill work to a component. The APIs
will be targeted to provide a Java programming language model of execution,
however, some aspects of the virtual machine, native and operating system
models may be directly provided or provided via an extension mechanism.
The APIs will be intended to supersede the current experimental interface - the
Java Virtual Machine Profiling Interface (JVMPI) - and thus must provide
roughly comparable functionality.
The APIs will accommodate implementations which can dynamically enable and
disable profiling; and thus will allow implementations which have negligible
performance impact when profiling is disabled. While profiling in the
application development phase will be the primary goal of this specification,
the design objectives for low performance overhead and data perturbation will
also support profiling in the deployment phase.
This work is being developed through the JCP as JSR-163.