1.4.2 HotSpot Instrumentation
This page provides a description of each of the instrumentation objects exported by the 1.4.2 HotSpot Java Virtual Machine. Table 4 provides a description of each instrumentation object , including its Name, Data Type, Units of Measure, Variability Attribute, and Description. The Data Types are described in Table 1 and the Units of Measure in Table 2. Table 3 contains descriptions of the Variability Attributes, which indicate the behavior of the instrumentation objects. All instrumentation objects for the 1.4.2 HotSpot JVM correspond to the 1.0 version of the PerfData structure. However, the location of the instrumentation backing store file and the names of numerous garbage collector counters has changed from 1.4.1, resulting in incompatibilities between the tools for these two versions.
The instrumentation objects listed here represent an uncommitted, experimental interface into the HotSpot JVM. These instrumentation objects may be changed or deleted at any time. End users should avoid writing scripts that depend on the names or other characteristics of these objects.
A JVM started with the -XX:-UsePerfData
or
-XX:+PerfDisableSharedMem
options will not export
its instrumentation. Some instrumentation objects listed below may only
be available with certain command line options, as indicated in the
Notes column in Table 4.
Table 1: Data Types
Data Type |
Abbreviation |
Description |
---|---|---|
Long |
L |
A signed, 64 bit long value. |
String |
S |
A null terminated UTF-8 sequence of bytes. |
Table 2 : Units of Measure
Name |
Abbreviation |
Description |
---|---|---|
Bytes |
B |
Bytes |
Events |
E |
Arbitrary event count. For example, the number garbage collection events or class load events. |
Hz |
H |
A rate |
String |
S |
A null terminated UTF-8 sequence of bytes. |
Ticks |
T |
A measure of time that scaled to an arbitrary rate. Tick values should be scaled to an ordinary measure of time. The hotspot.rt.hrt.frequency counter can and should be used to convert tick values into ordinary measures of time. |
Unitless |
U |
The data value has no particular unit of measure. For example it may be a ratio or an ordinal value. |
Table 3: Variability Attributes
Variability Attribute |
Abbreviation |
Description |
---|---|---|
Constant |
C |
The data value of the instrumentation object never changes. |
Monotonic |
M |
The data value of the instrumentation object changes monotonically. |
Variable |
V |
The data value of the instrumentation object changes arbitrarily |
Table 4: Instrumentation Objects
Name |
Type |
Units |
Var |
Notes |
Description |
hotspot.ci.AdapterThread.compiles |
L |
E |
M |
1 |
Number of compile tasks performed by the Adapter Thread |
hotspot.ci.AdapterThread.method |
S |
S |
V |
1 |
Name of the last method compiled by the Adapter Thread |
hotspot.ci.AdapterThread.time |
L |
T |
M |
1 |
Wall time used the Adapter Thread |
hotspot.ci.AdapterThread.type |
L |
U |
V |
1 |
Type of the last method compiled by the Adapter Thread |
hotspot.ci.CompilerThreadN.compiles |
L |
E |
M |
2 |
Number of compile tasks performed by Compiler Thread N |
hotspot.ci.CompilerThreadN.method |
S |
S |
V |
2 |
Name of the last method compiled by Compiler Thread N |
hotspot.ci.CompilerThreadN.time |
L |
T |
M |
2 |
Wall time used Compiler Thread N |
hotspot.ci.CompilerThreadN.type |
L |
U |
V |
2 |
Type of the last method compiled by Compiler Thread N |
hotspot.ci.failed.method |
S |
S |
V |
3 |
Name of the last method that failed to compile |
hotspot.ci.failed.type |
L |
U |
V |
|
Type of the last method that failed to compile |
hotspot.ci.invalidated.method |
S |
S |
V |
|
Name of the last method compilation that was invalidated |
hotspot.ci.invalidated.type |
L |
U |
V |
|
Type of the last method compilation that was invalidated |
hotspot.ci.last.method |
S |
S |
V |
|
Name of the last method compiled |
hotspot.ci.last.size |
L |
B |
V |
|
Size of the byte code for the last method compiled |
hotspot.ci.last.type |
L |
U |
V |
|
Type of the last method compiled |
hotspot.ci.native.compiles |
L |
E |
M |
|
Number of native compiles |
hotspot.ci.native.time |
L |
T |
M |
|
Time spent in native compiles |
hotspot.ci.nmethod.codesize |
L |
B |
M |
|
Bytes use by compiled methods |
hotspot.ci.nmethod.size |
L |
B |
M |
|
Bytes use by compiled methods |
hotspot.ci.osr.bytes |
L |
B |
M |
|
Number of bytes of On Stack Replacement compiled code |
hotspot.ci.osr.compiles |
L |
E |
M |
|
Number of On Stack Replacement compiles |
hotspot.ci.osr.time |
L |
T |
M |
|
Time spent in On Stack Replacement compiles |
hotspot.ci.standard.bytes |
L |
B |
M |
|
Number of bytes of Standard compiled code |
hotspot.ci.standard.compiles |
L |
E |
M |
|
Number of Standard compiles |
hotspot.ci.standard.time |
L |
T |
M |
|
Time spent in Standard compiles |
hotspot.ci.threads |
L |
U |
C |
|
Number of Compiler Threads |
hotspot.ci.total.bailout |
L |
E |
M |
3 |
Number of Failed compiles |
hotspot.ci.total.compiles |
L |
E |
M |
|
Number of Total compiles |
hotspot.ci.total.invalid |
L |
E |
M |
|
Number of invalid compiles |
hotspot.ci.total.time |
L |
T |
M |
|
Total time spent in compilation |
hotspot.gc.agetable.bytes.n |
L |
B |
V |
4,5 |
Number of bytes of Java Objects in the active Survivor Space with age n. The value for age 0 is always 0. |
hotspot.gc.agetable.dss |
L |
B |
V |
5 |
Desired Survivor Size |
hotspot.gc.agetable.mtt |
L |
U |
C |
5 |
Maximum Tenuring Threshold |
hotspot.gc.agetable.size |
L |
U |
C |
5 |
Number of entries in the Age Table |
hotspot.gc.agetable.tt |
L |
U |
V |
5 |
Current Tenuring Threshold |
hotspot.gc.cause |
S |
S |
V |
6 |
Reason for the current Garbage Collection |
hotspot.gc.collector.N.invocations |
L |
E |
M |
7 |
Number of Garbage Collector invocations for Collector N |
hotspot.gc.collector.N.last_entry |
L |
T |
M |
7 |
Time stamp of the last entry into Collector N |
hotspot.gc.collector.N.last_exit |
L |
T |
M |
7 |
Time stamp of the last exit from Collector N |
hotspot.gc.collector.N.name |
S |
S |
C |
7 |
Name of Collector N |
hotspot.gc.collector.N.time |
L |
T |
M |
7 |
Accumulated Wall Time in Collector N |
hotspot.gc.generation.N.capacity.current |
L |
B |
V |
8 |
Current Capacity of Generation N |
hotspot.gc.generation.N.capacity.max |
L |
B |
C |
8 |
Maximum Capacity of Generation N |
hotspot.gc.generation.N.capacity.min |
L |
B |
C |
8 |
Minimum Capacity of Generation N |
hotspot.gc.generation.N.name |
S |
S |
C |
8 |
Name of Generation N |
hotspot.gc.generation.N.space.M.capacity |
L |
B |
V |
9 |
Current Capacity of Space M of Generation N |
hotspot.gc.generation.N.space.M.name |
S |
S |
C |
9 |
Name of Space M of Generation N |
hotspot.gc.generation.N.space.M.size |
L |
B |
C |
9 |
Maximum size of Space M of Generation N |
hotspot.gc.generation.N.space.M.used |
L |
B |
V |
9 |
Amount used in Space M of Generation N |
hotspot.gc.generation.N.spaces |
S |
S |
C |
8 |
Number of spaces in Generation N |
hotspot.gc.last_cause |
S |
S |
V |
6 |
Reason for the previous Garbage Collection |
hotspot.gc.policy.collectors |
L |
U |
C |
|
Number of Collectors for the Garbage Collector Policy |
hotspot.gc.policy.generations |
L |
U |
C |
|
Number of Generations for the Garbage Collector Policy |
hotspot.gc.policy.name |
S |
S |
C |
|
Name of the Garbage Collector Policy |
hotspot.internal.version |
S |
S |
C |
|
The internal version string for HotSpot |
hotspot.perfdata.overflow |
L |
B |
V |
|
The number of bytes of overflow for the instrumentation memory region |
hotspot.perfdata.size |
L |
B |
C |
|
Size of the instrumentation memory region |
hotspot.perfdata.timestamp |
L |
T |
M |
|
Time stamp of the last structural modification to instrumentation memory region |
hotspot.rt.cl.bytes.loaded |
L |
B |
M |
|
Number of Java heap bytes loaded by class loader |
hotspot.rt.cl.bytes.unloaded |
L |
B |
M |
|
Number of Java heap bytes unloaded by class loader |
hotspot.rt.cl.classes.loaded |
L |
E |
M |
|
Number of classes loaded by class loader |
hotspot.rt.cl.classes.unloaded |
L |
E |
M |
|
Number of classes unloaded by class loader |
hotspot.rt.cl.time |
L |
T |
M |
|
Time spent loading and unloading classes |
hotspot.rt.hrt.frequency |
L |
Hz |
C |
|
Frequency(resolution) of the High Resolution Timer |
hotspot.rt.hrt.ticks |
L |
T |
M |
|
Current value of the High Resolution Timer |
hotspot.vm.args |
S |
S |
C |
|
-XX args passed to HotSpot via Invocation API |
hotspot.vm.flags |
S |
S |
C |
|
-XX args passed to HotSpot via the .hotspotrc file or the file indicated by -XX:Flags |
java.class.path |
S |
S |
C |
|
Java property |
java.endorsed.dirs |
S |
S |
C |
|
Java property |
java.ext.dirs |
S |
S |
C |
|
Java property |
java.home |
S |
S |
C |
|
Java property |
java.library.path |
S |
S |
C |
|
Java property |
java.vm.info |
S |
S |
C |
|
Java property |
java.vm.name |
S |
S |
C |
|
Java property |
java.vm.specification.name |
S |
S |
C |
|
Java property |
java.vm.specification.vendor |
S |
S |
C |
|
Java property |
java.vm.specification.version |
S |
S |
C |
|
Java property |
java.vm.vendor |
S |
S |
C |
|
Java property |
java.vm.version |
S |
S |
C |
|
Java property |
sun.boot.class.path |
S |
S |
C |
|
Java property |
sun.boot.library.path |
S |
S |
C |
|
Java property |
sun.java.command |
S |
S |
C |
10 |
String containing the Java class name or jar file name and the arguments passed to the main method |
1 |
The Adapter Compiler thread instrumentation is only available with the -server option. |
2 |
Number of compiler threads is controlled by the -XX:CompilerCount command line option. The number of compiler threads is indicated in by the hotspot.ci.threads instrument. |
3 |
Method compilation may fail for various reasons. Not all failed method compilations are cause for concern. |
4 |
Age Table size indicated in the hotspot.gc.agetable.size instrument. |
5 |
Age Table instrumentation not available with -XX:+UseParallelGC |
6 |
GC cause instrumentation only updated in debug builds of the JVM. These may become generally available in a future release. |
7 |
Number of collectors indicated in the hotspot.gc.policy.collectors instrument. |
8 |
Number of generations indicated in the hotspot.gc.policy.generations instrument. |
9 |
Number of spaces for a particular generation, N, is indicated in the hotspot.gc.generation.N.spaces instrument. |
10 |
The sun.java.command instrument depends on cooperation with the java application launcher. This value may be undefined or set to null when the application is launched from an embedded application. |
|
|