org.mmtk.plan.refcount
Class RCBaseCollector
java.lang.Object
org.mmtk.plan.CollectorContext
org.mmtk.plan.ParallelCollector
org.mmtk.plan.SimpleCollector
org.mmtk.plan.StopTheWorldCollector
org.mmtk.plan.refcount.RCBaseCollector
- All Implemented Interfaces:
- Constants
- Direct Known Subclasses:
- GenRCCollector, RCCollector
public abstract class RCBaseCollector
- extends StopTheWorldCollector
This class implements the collector context for 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.
Fields inherited from interface org.mmtk.utility.Constants |
ALIGNMENT_VALUE, ARRAY_ELEMENT, BITS_IN_ADDRESS, BITS_IN_BYTE, BITS_IN_CHAR, BITS_IN_INT, BITS_IN_PAGE, BITS_IN_SHORT, BITS_IN_WORD, BYTES_IN_ADDRESS, BYTES_IN_BYTE, BYTES_IN_CHAR, BYTES_IN_INT, BYTES_IN_KBYTE, BYTES_IN_MBYTE, BYTES_IN_PAGE, BYTES_IN_SHORT, BYTES_IN_WORD, CARD_MASK, CARD_META_PAGES_PER_REGION, INSTANCE_FIELD, LOG_BITS_IN_ADDRESS, LOG_BITS_IN_BYTE, LOG_BITS_IN_CHAR, LOG_BITS_IN_INT, LOG_BITS_IN_PAGE, LOG_BITS_IN_SHORT, LOG_BITS_IN_WORD, LOG_BYTES_IN_ADDRESS, LOG_BYTES_IN_ADDRESS_SPACE, LOG_BYTES_IN_BYTE, LOG_BYTES_IN_CHAR, LOG_BYTES_IN_INT, LOG_BYTES_IN_KBYTE, LOG_BYTES_IN_MBYTE, LOG_BYTES_IN_PAGE, LOG_BYTES_IN_SHORT, LOG_BYTES_IN_WORD, LOG_CARD_BYTES, LOG_CARD_GRAIN, LOG_CARD_META_BYTES, LOG_CARD_META_PAGES, LOG_CARD_META_SIZE, LOG_CARD_UNITS, LOG_MIN_ALIGNMENT, MAX_ALIGNMENT, MAX_BYTES_PADDING, MAX_INT, MIN_ALIGNMENT, MIN_INT, SUPPORT_CARD_SCANNING |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
newRootBuffer
protected final ObjectReferenceDeque newRootBuffer
backupTrace
private final BTTraceLocal backupTrace
modBuffer
private final ObjectReferenceDeque modBuffer
oldRootBuffer
private final ObjectReferenceDeque oldRootBuffer
decBuffer
private final RCDecBuffer decBuffer
zero
private final RCZero zero
RCBaseCollector
public RCBaseCollector()
- Constructor.
getModifiedProcessor
protected abstract TransitiveClosure getModifiedProcessor()
- Get the modified processor to use.
getRootTrace
protected abstract TraceLocal getRootTrace()
- Get the root trace to use.
collect
public void collect()
- Perform garbage collection
- Overrides:
collect
in class StopTheWorldCollector
collectionPhase
public void collectionPhase(short phaseId,
boolean primary)
- Description copied from class:
SimpleCollector
- Perform a (local, i.e.per-collector) collection phase.
- Overrides:
collectionPhase
in class SimpleCollector
- Parameters:
phaseId
- The unique phase identifierprimary
- Should this thread be used to execute any single-threaded
local operations?
global
protected static RCBase global()
- Returns:
- The active global plan as an
RC
instance.
getCurrentTrace
public final TraceLocal getCurrentTrace()
- Overrides:
getCurrentTrace
in class ParallelCollector
- Returns:
- The current trace instance.
getModBuffer
public final ObjectReferenceDeque getModBuffer()
- Returns:
- The current modBuffer instance.