public class SSCollector extends StopTheWorldCollector
Specifically, this class defines SS collection behavior
(through trace and the collectionPhase
method), and collection-time allocation (copying of objects).
See SS for an overview of the semi-space algorithm.
SS,
SSMutator,
StopTheWorldCollector,
CollectorContext| Modifier and Type | Field and Description |
|---|---|
protected LargeObjectLocal |
los |
protected CopyLocal |
ss |
protected SSTraceLocal |
trace |
sanityLocalgrouplog| Modifier | Constructor and Description |
|---|---|
|
SSCollector()
Constructor
|
protected |
SSCollector(SSTraceLocal tr)
Constructor
|
| 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 SS |
global() |
static boolean |
isSemiSpaceObject(ObjectReference object)
Return
true if the given reference is to an object that is within
one of the semi-spaces. |
void |
postCopy(ObjectReference object,
ObjectReference typeRef,
int bytes,
int allocator)
Perform any post-copy actions.
|
collect, concurrentCollect, concurrentCollectionPhaseparallelWorkerCount, parallelWorkerOrdinal, park, rendezvous, runcopyCheckAllocator, getId, getLog, initCollectorprotected final SSTraceLocal trace
protected final LargeObjectLocal los
public SSCollector()
protected SSCollector(SSTraceLocal tr)
tr - The trace to usepublic 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 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 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 static boolean isSemiSpaceObject(ObjectReference object)
true if the given reference is to an object that is within
one of the semi-spaces.object - The object in questiontrue if the given reference is to an object that is within
one of the semi-spaces.public TraceLocal getCurrentTrace()
getCurrentTrace in class ParallelCollector