Concurrent | 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 |
| |
|
|
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 | 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 |
|
|
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 |
| |
| modified during the concurrent marking phase. |
|
|
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,
The following image shows a summary of .vgc data collected using the
88 Analyzing Garbage Collection Data