Table 6-5 Common Garbage Collection Types Recognized by HPjmeter

Concurrent Mark-Sweep (CMS)

A garbage collection performed in the old area of the heap as a

 

background thread that does its work with few pauses in the application

 

run.

 

 

Parallel Scavenge

Only objects from the young generation are collected using a

 

multi-threaded garbage collector.

 

 

Scavenge

Objects from the young generation only are collected using a single

 

thread.

 

 

Scavenge during CMS

Collection in the young generation occurs when a CMS operation is set

 

to collect in the old generation. The pauses for the young generation

 

collection and the old generation collection occur independently and

 

cannot overlap.

 

 

Incomplete Concurrent Mark-Sweep

Occurs when a background thread is performing a garbage collection

 

in the old area, but is interrupted when the JVM determines that a full

 

GC is needed.

 

 

Old Expanded Full GC

Necessary when the old area is expanded on the most recent scavenge.

 

Typically, this happens when -Xmsand -Xmxare not the same.

 

 

Perm Full

Full GC necessary because the space reserved for metadata is full.

 

 

Train Full

Full GC necessary because intermediate space assigned to collection

 

using the train algorithm is full.

 

 

Old Too Full

Full GC performed when the garbage collector determines that space

 

for old objects is insufficient to support a successful scavenge. This

 

determination is reached without analyzing the heap.

 

 

Old Full

Full GC performed when the garbage collector determines that space

 

for old objects is insufficient to support a successful scavenge. This

 

determination is reached by analyzing the heap.

 

 

System.gc

The application calls method System.gc() to force a full garbage

 

collection.

 

 

Heap Dump Triggered GC

A full GC is performed as a result of a signal sent to the JVM to collect

 

a heap dump.

 

 

JVMTI force GC

A garbage collection is performed as a result of invoking the

 

ForceGarbageCollection function of JVMTI.

 

 

Other Full GC

A full garbage collection of unknown type and cause.

 

 

CMS First STW

Mark the first pause during a concurrent collection cycle. Called the

 

initial mark, this identifies the initial set of live objects directly reachable

 

from the application code.

 

 

CMS Second STW

Mark the second pause during a concurrent collection cycle. Called the

 

re-mark, this finalizes marking by revisiting any objects that were

 

modified during the concurrent marking phase.

 

 

See also Data Collection with -Xverbosegc (page 80).

For an explanation of Java memory terminology, see the Sun Developer Network publication Memory Management in the Java HotSpot™ Virtual Machine (.pdf)

Understanding the Summary Presentation of GC Data

To view the summary presentation of GC data, double-click on the data representation in the main panel. A window will open to display the data.

The following image shows a summary of .vgc data collected using the -Xverbosegcoption and displayed under the Summary tab. Important aspects of the summary data are defined below the image.

88 Analyzing Garbage Collection Data