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, preSanityPhase
CLOSURE, 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_REFS
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, 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, switchNurseryZeroingApproach
availableMemory, 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, willNeverMove
public 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()
StopTheWorld
processOptions
in class StopTheWorld
public static final boolean isRCObject(ObjectReference object)
object
- an object referencepublic boolean lastCollectionFullHeap()
lastCollectionFullHeap
in class Plan
public void collectionPhase(short phaseId)
Simple
collectionPhase
in class Simple
phaseId
- The unique id of the phase to perform.public int getPagesUsed()
getPagesUsed
in class Plan
public void sanityLinearScan(LinearScan scan)
sanityLinearScan
in class Plan
scan
- The scanner callback to use.public int sanityExpectedRC(ObjectReference object, int sanityRootRC)
Plan
true/false
relationship.sanityExpectedRC
in class Plan
object
- The object to check.sanityRootRC
- The number of root references to the object.protected void registerSpecializedMethods()
Plan
registerSpecializedMethods
in class Plan
public byte setBuildTimeGCByte(Address object, ObjectReference typeRef, int size)
Plan
setBuildTimeGCByte
in class Plan
object
- 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.