public class RCBase extends StopTheWorld
| Modifier and Type | Field and Description |
|---|---|
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 |
postSanityPhase, preSanityPhaseCLOSURE, collection, collectionAttempt, COMPLETE, completeClosurePhase, FINALIZABLE, finishPhase, FORWARD, FORWARD_FINALIZABLE, FORWARD_REFS, forwardPhase, INITIATE, initPhase, PHANTOM_REFS, POST_SANITY_PLACEHOLDER, PRE_SANITY_PLACEHOLDER, PREPARE, PREPARE_STACKS, prepareStacks, refTypeClosurePhase, RELEASE, rootClosurePhase, 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_REFSALLOC_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, concurrentWorkers, controlCollectorContext, DEFAULT_MAX_NURSERY, DEFAULT_MIN_NURSERY, DEFAULT_SITE, defaultCollectorContext, emergencyCollection, GATHER_WRITE_BARRIER_STATS, GC_PREPARE, GC_PROPER, IMMORTAL, immortalSpace, insideHarness, internalTriggeredCollection, LARGE_CODE, largeCodeSpace, lastInternalTriggeredCollection, LOS, loSpace, MAX_NON_LOS_COPY_BYTES, MAX_NON_LOS_DEFAULT_ALLOC_BYTES, MAX_NON_LOS_NONMOVING_ALLOC_BYTES, META, metaDataSpace, NEEDS_LOG_BIT_IN_HEADER, NON_MOVING, NON_PARTICIPANT, nonMovingSpace, NOT_IN_GC, parallelWorkers, pretenureThreshold, SANITY, sanityChecker, sanitySpace, SCAN_BOOT_IMAGE, SMALL_CODE, smallCodeSpace, stacksPrepared, totalTime, USE_CODE_SPACE, userTriggeredCollection, VM_SPACE, vmSpace| Constructor and Description |
|---|
RCBase()
Constructor
|
| Modifier and Type | Method and Description |
|---|---|
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()
Registers 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.
|
byte |
setBuildTimeGCByte(Address object,
ObjectReference typeRef,
int size)
Performs any required initialization of the GC portion of the header.
|
replacePhase, replacePlaceholderPhase, switchNurseryZeroingApproachavailableMemory, bootTimeWriteBarrier, collectionRequired, concurrentCollectionRequired, determineThreadCount, enableAllocation, enableCollection, forceFullHeapCollection, freeMemory, fullyBooted, gcInProgress, gcInProgressProper, getAllocationSite, getCollectionReserve, getPagesAvail, getPagesReserved, getSpecializedScanClass, getTotalPages, handleUserCollectionRequest, harnessBegin, harnessEnd, insertPhaseAfter, isCurrentGCNursery, isEmergencyCollection, isInitialized, isInternalTriggeredCollection, isUserTriggeredCollection, lastCollectionWasExhaustive, loadObjectReference, logPoll, notifyExit, poll, preCollectorSpawn, printDetailedTiming, printPostStats, printPreStats, printUsedPages, reservedMemory, resetCollectionTrigger, setGCStatus, spawnCollectorThreads, stacksPrepared, startGCspyServer, storeObjectReference, stressTestGCRequired, totalMemory, triggerInternalCollectionRequest, usedMemory, willNeverMovepublic 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 backupTrace
private final BTFreeLargeObjectSweeper loFreeSweeper
public RCBase()
public void processOptions()
StopTheWorldprocessOptions in class StopTheWorldpublic static final boolean isRCObject(ObjectReference object)
object - an object referencepublic boolean lastCollectionFullHeap()
lastCollectionFullHeap in class Planpublic void collectionPhase(short phaseId)
SimplecollectionPhase in class SimplephaseId - The unique id of the phase to perform.public int getPagesUsed()
getPagesUsed in class Planpublic void sanityLinearScan(LinearScan scan)
sanityLinearScan in class Planscan - The scanner callback to use.public int sanityExpectedRC(ObjectReference object, int sanityRootRC)
Plantrue/false relationship.sanityExpectedRC in class Planobject - The object to check.sanityRootRC - The number of root references to the object.protected void registerSpecializedMethods()
PlanregisterSpecializedMethods in class Planpublic byte setBuildTimeGCByte(Address object, ObjectReference typeRef, int size)
PlansetBuildTimeGCByte in class Planobject - the Address representing the storage to be initializedtypeRef - the type reference for the instance being createdsize - the number of bytes allocated by the GC system for
this object.