org.mmtk.policy
Class MarkCompactLocal
java.lang.Object
org.mmtk.utility.alloc.Allocator
org.mmtk.utility.alloc.BumpPointer
org.mmtk.policy.MarkCompactLocal
- All Implemented Interfaces:
- Constants
public final class MarkCompactLocal
- extends BumpPointer
This class implements unsynchronized (local) elements of a
sliding mark-compact collector. Allocation is via the bump pointer
(@see BumpPointer).
- See Also:
BumpPointer
,
MarkCompactSpace
Fields inherited from class org.mmtk.utility.alloc.BumpPointer |
allowScanning, BLOCK_MASK, cursor, DATA_END_OFFSET, DATA_START_OFFSET, initialRegion, LOG_BLOCK_SIZE, MAX_DATA_START_OFFSET, MINIMUM_DATA_SIZE, NEXT_REGION_OFFSET, region, REGION_LIMIT_OFFSET, space |
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 |
Method Summary |
void |
flush()
Flush this thread-local component in preparation for the mutator thread
to die. |
protected Extent |
maximumRegionSize()
Maximum size of a single region. |
private MarkCompactSpace |
mcSpace()
|
void |
prepare()
Prepare for collection: update the metadata for the current region, and flush
this bump-pointer's allocations to the global page list. |
Methods inherited from class org.mmtk.utility.alloc.BumpPointer |
alloc, allocSlowOnce, checkRegionMetadata, clearNextRegion, gcspyGatherData, gcspyGatherData, getCursor, getDataEnd, getDataStart, getNextRegion, getRegionLimit, getSpace, isRegionAligned, linearScan, rebind, reset, reusePages, setDataEnd, setNextRegion, setRegionLimit, show, updateLimit |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
MarkCompactLocal
public MarkCompactLocal(MarkCompactSpace space)
- Constructor
- Parameters:
space
- The space to bump point into.
mcSpace
private MarkCompactSpace mcSpace()
prepare
public void prepare()
- Prepare for collection: update the metadata for the current region, and flush
this bump-pointer's allocations to the global page list.
flush
public void flush()
- Flush this thread-local component in preparation for the mutator thread
to die.
maximumRegionSize
protected Extent maximumRegionSize()
- Description copied from class:
BumpPointer
- Maximum size of a single region. Important for children that implement
load balancing or increments based on region size.
- Overrides:
maximumRegionSize
in class BumpPointer
- Returns:
- the maximum region size