org.mmtk.plan.generational.marksweep
Class GenMSCollector
java.lang.Object
org.mmtk.plan.CollectorContext
org.mmtk.plan.SimpleCollector
org.mmtk.plan.StopTheWorldCollector
org.mmtk.plan.generational.GenCollector
org.mmtk.plan.generational.marksweep.GenMSCollector
- All Implemented Interfaces:
- Constants
public class GenMSCollector
- extends GenCollector
This class implements per-collector thread behavior and state for
the GenMS two-generational copying collector.
Specifically, this class defines semantics specific to the collection of
the mature generation (GenCollector defines nursery semantics).
In particular the mature space allocator is defined (for collection-time
allocation into the mature space), and the mature space per-collector thread
collection time semantics are defined.
- See Also:
for a description of the GenMS algorithm.,
GenMS,
GenMSMutator,
GenCollector,
StopTheWorldCollector,
CollectorContext
| 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 |
mature
private final MarkSweepLocal mature
- The allocator for the mature space
matureTrace
private final GenMSMatureTraceLocal matureTrace
GenMSCollector
public GenMSCollector()
- Constructor
allocCopy
public final 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)
- Overrides:
allocCopy in class CollectorContext
- Parameters:
original - 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 to use.
- Returns:
- The address of the first byte of the allocated region
postCopy
public final void postCopy(ObjectReference object,
ObjectReference typeRef,
int bytes,
int allocator)
- Perform any post-copy actions.
- Overrides:
postCopy in class CollectorContext
- Parameters:
object - 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.
collectionPhase
public void collectionPhase(short phaseId,
boolean primary)
- Perform a (local) collection phase.
- Overrides:
collectionPhase in class GenCollector
- Parameters:
phaseId - Collection phase to performprimary - Is this thread to do the one-off thread-local tasks
getFullHeapTrace
public final TraceLocal getFullHeapTrace()
- Specified by:
getFullHeapTrace in class GenCollector
- Returns:
- The trace to use when collecting the mature space
global
private static GenMS global()
- Returns:
- The active global plan as a
GenMS instance.