G1: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
No edit summary
Line 43: Line 43:
The collection can be "young", where only young and survivor regions are touched, or "mixed", where the collection includes young, survivor and old regions.
The collection can be "young", where only young and survivor regions are touched, or "mixed", where the collection includes young, survivor and old regions.


==Collection Triggers==


==Evacuation==
===Allocation Failure===


The ''evacuation'' is the process of copying live objects from one G1 region to another. An "evacuation" collection is the most common type of young and mixed generation collection, where all the application threads are stopped and the GC system copies live objects across G1 regions.
=Garbage Collection Triggers=




Line 78: Line 76:


GC is triggered to satisfy allocation failure.
GC is triggered to satisfy allocation failure.
==Evacuation==
The ''evacuation'' is the process of copying live objects from one G1 region to another. An "evacuation" collection is the most common type of young and mixed generation collection, where all the application threads are stopped and the GC system copies live objects across G1 regions.

Revision as of 02:59, 17 February 2017

External

Internal

Overview

Evacuation is the process of copying live data from Young regions into Survivor regions (or free regions that thus become Survivors). During an Evacuation, all application threads are stopped.

Log marker:

[GC pause (G1 Evacuation Pause) (young), 0.7919126 secs]

Eden.


Spaces:

  • Young (or Eden)
  • Survivor
  • Old Generation


Metaspace

Process https://blogs.oracle.com/g1gc/entry/g1_gc_glossary_of_terms

Concepts

Collection

A collection gains the exclusive access of the heap and stops all application threads.

The collection can be "young", where only young and survivor regions are touched, or "mixed", where the collection includes young, survivor and old regions.

Collection Triggers

Allocation Failure

G1 Evacuation Pause

"G1 Evacuation Pause" indicates that a young or a mixed collection was triggered by a failed allocation.

System.gc()

The collection is triggered by a System.gc() call.

GCLocker Initiated GC

"GCLocker Initiated GC" is a collection triggered when a JNI critical region was released. Garbage collection is blocked when any thread is in the JNI Critical region. If garbage collection was requested during that period, that garbage collection is invoked after all the threads come out of the JNI critical region.

Metadata GC Threshold

"Metadata GC Threshold" is a collection triggered because the metadata space usage is over some threshold. We should not see this if ClassUnloadingWithConcurrentMark is enabled.

G1 Humongous Allocation

GC is triggered when allocating humongous object failed.

G1 Humongous Allocation

"Heap Dump Initiated GC": full gc is triggered by heap dump request.

Allocation Failure

GC is triggered to satisfy allocation failure.


Evacuation

The evacuation is the process of copying live objects from one G1 region to another. An "evacuation" collection is the most common type of young and mixed generation collection, where all the application threads are stopped and the GC system copies live objects across G1 regions.