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

Notes

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.