|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||
java.lang.Objectorg.mmtk.plan.CollectorContext
org.mmtk.plan.SimpleCollector
org.mmtk.plan.StopTheWorldCollector
org.mmtk.plan.immix.ImmixCollector
public class ImmixCollector
This class implements per-collector thread behavior and state for the Immix plan, which implements a full-heap immix collector.
Specifically, this class defines Immix collection behavior
(through fastTrace and the collectionPhase
method).
for an overview of the immix algorithm.
FIXME The SegregatedFreeList class (and its decendents such as
MarkSweepLocal) does not properly separate mutator and collector
behaviors, so the immix field below should really not exist in
this class as there is no collection-time allocation in this
collector.
,
Immix,
MutatorLocal,
StopTheWorldCollector,
CollectorContext,
Phase| Field Summary | |
|---|---|
protected ImmixAllocator |
copy
|
protected TraceLocal |
currentTrace
|
protected ImmixDefragTraceLocal |
defragTrace
|
protected ImmixTraceLocal |
fastTrace
Instance fields |
protected CollectorLocal |
immix
|
protected BumpPointer |
immortal
|
| Fields inherited from class org.mmtk.plan.CollectorContext |
|---|
resetConcurrentWork, sanityLocal |
| Constructor Summary | |
|---|---|
ImmixCollector()
Constructor |
|
| Method Summary | |
|---|---|
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 per-collector collection phase. |
TraceLocal |
getCurrentTrace()
|
private static Immix |
global()
|
void |
postCopy(ObjectReference object,
ObjectReference typeRef,
int bytes,
int allocator)
Perform any post-copy actions. |
| Methods inherited from class org.mmtk.plan.StopTheWorldCollector |
|---|
collect, concurrentCollect, concurrentCollectionPhase |
| Methods inherited from class org.mmtk.plan.CollectorContext |
|---|
clearResetConcurrentWork, copyCheckAllocator, getId, initCollector, resetConcurrentWork |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
protected ImmixTraceLocal fastTrace
protected ImmixDefragTraceLocal defragTrace
protected CollectorLocal immix
protected final ImmixAllocator copy
protected final BumpPointer immortal
protected TraceLocal currentTrace
| Constructor Detail |
|---|
public ImmixCollector()
| Method Detail |
|---|
public Address allocCopy(ObjectReference original,
int bytes,
int align,
int offset,
int allocator)
allocCopy in class CollectorContextoriginal - A reference to the original objectbytes - The size of the space to be allocated (in bytes)align - The requested alignment.offset - The alignment offset.allocator - The allocator associated with this request.
public void postCopy(ObjectReference object,
ObjectReference typeRef,
int bytes,
int allocator)
postCopy in class CollectorContextobject - The newly allocated objecttypeRef - the type reference for the instance being createdbytes - 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 collection phase to performprimary - Perform any single-threaded activities using this thread.private static Immix global()
Immix instance.public final TraceLocal getCurrentTrace()
getCurrentTrace in class CollectorContext
|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||