public class CopyMSCollector extends StopTheWorldCollector
Specifically, this class defines CopyMS
collection behavior (through trace and
the collectionPhase method), and
collection-time allocation into the mature space.
CopyMS,
CopyMSMutator,
StopTheWorldCollector,
CollectorContext| Modifier and Type | Field and Description |
|---|---|
protected LargeObjectLocal |
los |
private MarkSweepLocal |
mature |
private CopyMSTraceLocal |
trace |
sanityLocalgrouplog| Constructor and Description |
|---|
CopyMSCollector()
Create a new (local) instance.
|
| Modifier and Type | Method and Description |
|---|---|
Address |
allocCopy(ObjectReference original,
int bytes,
int align,
int offset,
int allocator)
Allocate space for copying an object (this method does not
copy the object, it only allocates space)
|
void |
collectionPhase(short phaseId,
boolean primary)
Perform a (local, i.e.per-collector) collection phase.
|
TraceLocal |
getCurrentTrace() |
private static CopyMS |
global() |
void |
postCopy(ObjectReference object,
ObjectReference typeRef,
int bytes,
int allocator)
Perform any post-copy actions.
|
collect, concurrentCollect, concurrentCollectionPhaseparallelWorkerCount, parallelWorkerOrdinal, park, rendezvous, runcopyCheckAllocator, getId, getLog, initCollectorprivate final MarkSweepLocal mature
private final CopyMSTraceLocal trace
protected final LargeObjectLocal los
public CopyMSCollector()
public final Address allocCopy(ObjectReference original, int bytes, int align, int offset, int allocator)
allocCopy in class CollectorContextoriginal - The object that is being copied.bytes - The size of the space to be allocated (in bytes)align - Required alignment for the copyoffset - Offset associated with the alignment.allocator - The allocator associated with this requestpublic final void postCopy(ObjectReference object, ObjectReference typeRef, int bytes, int allocator)
CollectorContextpostCopy in class CollectorContextobject - The newly allocated object.typeRef - the type reference for the instance being created.bytes - The size of the space to be allocated (in bytes).allocator - The allocator statically assigned to this allocation.public final void collectionPhase(short phaseId, boolean primary)
collectionPhase in class SimpleCollectorphaseId - The unique phase identifierprimary - Should this thread be used to execute any single-threaded
local operations?public final TraceLocal getCurrentTrace()
getCurrentTrace in class ParallelCollector