org.mmtk.plan.refcount.generational
Class GenRC
java.lang.Object
org.mmtk.plan.Plan
org.mmtk.plan.Simple
org.mmtk.plan.StopTheWorld
org.mmtk.plan.refcount.RCBase
org.mmtk.plan.refcount.generational.GenRC
- All Implemented Interfaces:
- Constants
public class GenRC
- extends RCBase
This class implements the global state of a a simple reference counting collector.
| Fields inherited from class org.mmtk.plan.refcount.RCBase |
backupTrace, BT_CLOSURE, CC_BACKUP_TRACE, CC_ENABLED, CC_FORCE_FULL, collection, decPool, modPool, newRootPool, oldRootPool, performCycleCollection, PROCESS_DECBUFFER, PROCESS_MODBUFFER, PROCESS_NEWROOTBUFFER, PROCESS_OLDROOTBUFFER, rcloSpace, rcSpace, REF_COUNT, REF_COUNT_LOS, refCountCollectionPhase, rootClosurePhase, rootTrace |
| Fields inherited from class org.mmtk.plan.Simple |
CLOSURE, collectionAttempt, COMPLETE, completeClosurePhase, FINALIZABLE, finishPhase, FORWARD, FORWARD_FINALIZABLE, FORWARD_REFS, forwardPhase, INITIATE, initPhase, PHANTOM_REFS, POST_SANITY_PLACEHOLDER, PRE_SANITY_PLACEHOLDER, PRECOPY, PREPARE, PREPARE_STACKS, prepareStacks, refTypeClosurePhase, RELEASE, ROOTS, SANITY_BUILD_TABLE, SANITY_CHECK_TABLE, SANITY_COPY_ROOTS, SANITY_PREPARE, SANITY_RELEASE, SANITY_ROOTS, SANITY_SET_POSTGC, SANITY_SET_PREGC, sanityBuildPhase, sanityCheckPhase, SET_COLLECTION_KIND, SOFT_REFS, STACK_ROOTS, WEAK_REFS, WEAK_TRACK_REFS |
| Fields inherited from class org.mmtk.plan.Plan |
ALLOC_CODE, ALLOC_COLD_CODE, ALLOC_DEFAULT, ALLOC_GCSPY, ALLOC_HOT_CODE, ALLOC_IMMORTAL, ALLOC_LARGE_CODE, ALLOC_LOS, ALLOC_NON_MOVING, ALLOC_NON_REFERENCE, ALLOC_PRIMITIVE_LOS, ALLOC_STACK, allocationSiteCount, ALLOCATORS, awaitingAsyncCollection, collectionTrigger, DEFAULT_MAX_NURSERY, DEFAULT_MIN_NURSERY, DEFAULT_POLL_FREQUENCY, DEFAULT_SITE, emergencyCollection, GATHER_WRITE_BARRIER_STATS, GC_PREPARE, GC_PROPER, HEAP_FULL_MINIMUM, HEAP_FULL_PERCENTAGE, IMMORTAL, immortalSpace, insideHarness, LARGE_CODE, largeCodeSpace, LOS, loSpace, MAX_COLLECTION_ATTEMPTS, MAX_NON_LOS_COPY_BYTES, MAX_NON_LOS_DEFAULT_ALLOC_BYTES, MAX_NON_LOS_NONMOVING_ALLOC_BYTES, META, META_DATA_POLL_FREQUENCY, metaDataSpace, NEEDS_LOG_BIT_IN_HEADER, NON_MOVING, NON_PARTICIPANT, nonMovingSpace, NOT_IN_GC, PLOS_FRAC, requiredAtStart, SANITY, sanityChecker, sanitySpace, SCAN_BOOT_IMAGE, SMALL_CODE, smallCodeSpace, stacksPrepared, timeCap, totalTime, USE_CODE_SPACE, VM_SPACE, vmSpace |
| 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 |
|
Constructor Summary |
GenRC()
|
|
Method Summary |
void |
collectionPhase(short phaseId)
Perform a (global) collection phase. |
boolean |
collectionRequired(boolean spaceFull)
This method controls the triggering of a GC. |
int |
getCollectionReserve()
Return the number of pages reserved for copying. |
int |
getPagesAvail()
Return the number of pages available for allocation, assuming
all future allocation is to the nursery. |
int |
getPagesRequired()
Calculate the number of pages a collection is required to free to satisfy
outstanding allocation requests. |
boolean |
willNeverMove(ObjectReference object)
Can this object ever move. |
| Methods inherited from class org.mmtk.plan.Plan |
availableMemory, boot, bootTimeWriteBarrier, checkForAsyncCollection, collectionComplete, concurrentCollectionRequired, forceFullHeapCollection, freeMemory, fullyBooted, gcInProgress, gcInProgressProper, getAllocationSite, getHeapFullThreshold, getMetaDataPagesUsed, getPagesReserved, getSpecializedScanClass, getTimeCap, getTotalPages, harnessBegin, harnessEnd, insertPhaseAfter, isCollectionTriggered, isCurrentGCNursery, isEmergencyCollection, isInitialized, lastCollectionFailed, lastCollectionWasExhaustive, loadObjectReference, notifyExit, poll, printDetailedTiming, printPostStats, printPreStats, printUsedPages, reservedMemory, setAwaitingAsyncCollection, setCollectionTrigger, setCollectionTriggered, setGCStatus, stacksPrepared, startGCspyServer, storeObjectReference, stressTestGCRequired, totalMemory, usedMemory |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
ALLOC_NURSERY
public static final int ALLOC_NURSERY
- See Also:
- Constant Field Values
ALLOC_RC
public static final int ALLOC_RC
- See Also:
- Constant Field Values
nurserySpace
public static final CopySpace nurserySpace
- The nursery space is where all new objects are allocated by default
NURSERY
public static final int NURSERY
GenRC
public GenRC()
collectionPhase
public final void collectionPhase(short phaseId)
- Perform a (global) collection phase.
- Overrides:
collectionPhase in class RCBase
- Parameters:
phaseId - Collection phase
collectionRequired
public final boolean collectionRequired(boolean spaceFull)
- This method controls the triggering of a GC. It is called periodically
during allocation. Returns true to trigger a collection.
- Overrides:
collectionRequired in class Plan
- Parameters:
spaceFull - Space request failed, must recover pages within 'space'.
- Returns:
- True if a collection is requested by the plan.
getPagesAvail
public int getPagesAvail()
- Return the number of pages available for allocation, assuming
all future allocation is to the nursery.
- Overrides:
getPagesAvail in class Plan
- Returns:
- The number of pages available for allocation, assuming
all future allocation is to the nursery.
getCollectionReserve
public final int getCollectionReserve()
- Return the number of pages reserved for copying.
- Overrides:
getCollectionReserve in class Plan
- Returns:
- The number of pages reserved given the pending
allocation, including space reserved for copying.
getPagesRequired
public int getPagesRequired()
- Calculate the number of pages a collection is required to free to satisfy
outstanding allocation requests.
- Overrides:
getPagesRequired in class Plan
- Returns:
- the number of pages a collection is required to free to satisfy
outstanding allocation requests.
willNeverMove
public boolean willNeverMove(ObjectReference object)
- Description copied from class:
Plan
- Can this object ever move. Used by the VM to make decisions about
whether it needs to copy IO buffers etc.
- Overrides:
willNeverMove in class Plan
- Parameters:
object - Object in question
- Returns:
- True if the object will never move
- See Also:
Plan.willNeverMove(org.vmmagic.unboxed.ObjectReference)