public abstract class GenCollector extends StopTheWorldCollector
Specifically, this class defines nursery collection behavior (through
nurseryTrace
and the collectionPhase
method).
Per-collector thread remset consumers are instantiated here (used by
sub-classes).
Gen
,
GenMutator
,
StopTheWorldCollector
,
CollectorContext
Modifier and Type | Field and Description |
---|---|
protected AddressPairDeque |
arrayRemset |
protected LargeObjectLocal |
los |
protected ObjectReferenceDeque |
modbuf |
protected GenNurseryTraceLocal |
nurseryTrace |
protected AddressDeque |
remset |
sanityLocal
group
log
Constructor and Description |
---|
GenCollector()
Constructor
Note that the collector is a consumer of remsets, while the
mutator is a producer.
|
Modifier and Type | Method and Description |
---|---|
void |
collectionPhase(short phaseId,
boolean primary)
Perform a (local, i.e.per-collector) collection phase.
|
TraceLocal |
getCurrentTrace() |
abstract TraceLocal |
getFullHeapTrace() |
private static Gen |
global() |
collect, concurrentCollect, concurrentCollectionPhase
parallelWorkerCount, parallelWorkerOrdinal, park, rendezvous, run
allocCopy, copyCheckAllocator, getId, getLog, initCollector, postCopy
protected final GenNurseryTraceLocal nurseryTrace
protected final LargeObjectLocal los
protected final ObjectReferenceDeque modbuf
protected final AddressDeque remset
protected final AddressPairDeque arrayRemset
public GenCollector()
Note that the collector is a consumer of remsets, while the
mutator is a producer. The GenMutator
class is
responsible for construction of the WriteBuffer (producer).
GenMutator
public void collectionPhase(short phaseId, boolean primary)
collectionPhase
in class SimpleCollector
phaseId
- The unique phase identifierprimary
- Should this thread be used to execute any single-threaded
local operations?public final TraceLocal getCurrentTrace()
getCurrentTrace
in class ParallelCollector
public abstract TraceLocal getFullHeapTrace()