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 |
sanityLocal
group
log
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, concurrentCollectionPhase
parallelWorkerCount, parallelWorkerOrdinal, park, rendezvous, run
copyCheckAllocator, getId, getLog, initCollector
protected 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 CollectorContext
original
- 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)
CollectorContext
postCopy
in class CollectorContext
object
- 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 SimpleCollector
phaseId
- 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