|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.mmtk.plan.Plan org.mmtk.plan.Simple org.mmtk.plan.StopTheWorld org.mmtk.plan.refcount.RCBase
public class RCBase
This class implements the global state of a reference counting collector. See Shahriyar et al for details of and rationale for the optimizations used here (http://dx.doi.org/10.1145/2258996.2259008). See Chapter 4 of Daniel Frampton's PhD thesis for details of and rationale for the cycle collection strategy used by this collector.
Field Summary | |
---|---|
Trace |
backupTrace
|
static short |
BT_CLOSURE
|
static boolean |
BUILD_FOR_GENRC
True if we are building for generational RC |
static boolean |
CC_BACKUP_TRACE
Use backup tracing for cycle collection (currently the only option) |
static boolean |
CC_ENABLED
Is cycle collection enabled? |
static boolean |
ccForceFull
Force full cycle collection at each GC? |
SharedDeque |
decPool
|
short |
genRCCollection
|
protected static short |
genRCCollectionPhase
|
protected static short |
genRCRootClosurePhase
|
private BTFreeLargeObjectSweeper |
loFreeSweeper
|
SharedDeque |
modPool
|
SharedDeque |
newRootPool
|
SharedDeque |
oldRootPool
|
static boolean |
performCycleCollection
|
static short |
PROCESS_DECBUFFER
|
static short |
PROCESS_MODBUFFER
|
static short |
PROCESS_NEWROOTBUFFER
|
static short |
PROCESS_OLDROOTBUFFER
|
static ExplicitLargeObjectSpace |
rcloSpace
|
static ExplicitFreeListSpace |
rcSpace
|
private BTSweeper |
rcSweeper
|
static int |
REF_COUNT
|
static int |
REF_COUNT_LOS
|
short |
refCountCollection
This is the phase that is executed to perform a collection. |
protected static short |
refCountCollectionPhase
Reference counting specific collection steps. |
protected static short |
refCountRootClosurePhase
Perform the initial determination of liveness from the roots. |
Trace |
rootTrace
|
Fields inherited from class org.mmtk.plan.StopTheWorld |
---|
postSanityPhase, preSanityPhase |
Constructor Summary | |
---|---|
RCBase()
Constructor |
Method Summary | |
---|---|
void |
collectionPhase(short phaseId)
Perform a (global) collection phase. |
int |
getPagesUsed()
Return the number of pages reserved for use given the pending allocation. |
static boolean |
isRCObject(ObjectReference object)
|
boolean |
lastCollectionFullHeap()
|
void |
processOptions()
The processOptions method is called by the runtime immediately after command-line arguments are available. |
protected void |
registerSpecializedMethods()
Register specialized methods. |
int |
sanityExpectedRC(ObjectReference object,
int sanityRootRC)
Return the expected reference count. |
void |
sanityLinearScan(LinearScan scan)
Perform a linear scan across all objects in the heap to check for leaks. |
Methods inherited from class org.mmtk.plan.Simple |
---|
replacePhase, replacePlaceholderPhase, switchNurseryZeroingApproach |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final short PROCESS_OLDROOTBUFFER
public static final short PROCESS_NEWROOTBUFFER
public static final short PROCESS_MODBUFFER
public static final short PROCESS_DECBUFFER
public static final boolean CC_ENABLED
public static boolean ccForceFull
public static final boolean CC_BACKUP_TRACE
public static boolean performCycleCollection
public static final short BT_CLOSURE
public static final boolean BUILD_FOR_GENRC
protected static final short refCountCollectionPhase
protected static final short genRCCollectionPhase
protected static final short refCountRootClosurePhase
protected static final short genRCRootClosurePhase
public short refCountCollection
public short genRCCollection
public static final ExplicitFreeListSpace rcSpace
public static final ExplicitLargeObjectSpace rcloSpace
public static final int REF_COUNT
public static final int REF_COUNT_LOS
public final SharedDeque modPool
public final SharedDeque decPool
public final SharedDeque newRootPool
public final SharedDeque oldRootPool
public final Trace rootTrace
public final Trace backupTrace
private final BTSweeper rcSweeper
private final BTFreeLargeObjectSweeper loFreeSweeper
Constructor Detail |
---|
public RCBase()
Method Detail |
---|
public void processOptions()
StopTheWorld
processOptions
in class StopTheWorld
public static final boolean isRCObject(ObjectReference object)
public boolean lastCollectionFullHeap()
lastCollectionFullHeap
in class Plan
public void collectionPhase(short phaseId)
Simple
collectionPhase
in class Simple
phaseId
- The unique id of the phase to perform.public int getPagesUsed()
getPagesUsed
in class Plan
public void sanityLinearScan(LinearScan scan)
sanityLinearScan
in class Plan
scan
- The scanner callback to use.public int sanityExpectedRC(ObjectReference object, int sanityRootRC)
Plan
true/false
relationship.
sanityExpectedRC
in class Plan
object
- The object to check.sanityRootRC
- The number of root references to the object.
protected void registerSpecializedMethods()
Plan
registerSpecializedMethods
in class Plan
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |