public class SS extends StopTheWorld
All plans make a clear distinction between global and thread-local activities. Global activities must be synchronized, whereas no synchronization is required for thread-local activities. Instances of Plan map 1:1 to "kernel threads" (aka CPUs). Thus instance methods allow fast, unsychronized access to Plan utilities such as allocation and collection. Each instance rests on static resources (such as memory and virtual memory resources) which are "global" and therefore "static" members of Plan. This mapping of threads to instances is crucial to understanding the correctness and performance properties of this plan.
| Modifier and Type | Field and Description |
|---|---|
static int |
ALLOC_SS |
static CopySpace |
copySpace0
One of the two semi spaces that alternate roles at each collection
|
static CopySpace |
copySpace1
One of the two semi spaces that alternate roles at each collection
|
static boolean |
hi
true if allocating into the "higher" semispace |
static int |
SCAN_SS |
static int |
SS0 |
static int |
SS1 |
Trace |
ssTrace |
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 |
|---|
SS()
Constructor
|
| Modifier and Type | Method and Description |
|---|---|
void |
collectionPhase(short phaseId)
Perform a (global) collection phase.
|
static CopySpace |
fromSpace() |
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 semi-space.
|
int |
getPagesUsed()
Return the number of pages reserved for use given the pending
allocation.
|
protected void |
registerSpecializedMethods()
Registers specialized methods.
|
static CopySpace |
toSpace() |
boolean |
willNeverMove(ObjectReference object)
Can this object ever move.
|
processOptionsreplacePhase, replacePlaceholderPhase, switchNurseryZeroingApproachavailableMemory, bootTimeWriteBarrier, collectionRequired, concurrentCollectionRequired, determineThreadCount, enableAllocation, enableCollection, forceFullHeapCollection, freeMemory, fullyBooted, gcInProgress, gcInProgressProper, getAllocationSite, getPagesReserved, getSpecializedScanClass, getTotalPages, handleUserCollectionRequest, harnessBegin, harnessEnd, insertPhaseAfter, isCurrentGCNursery, isEmergencyCollection, isInitialized, isInternalTriggeredCollection, isUserTriggeredCollection, lastCollectionFullHeap, lastCollectionWasExhaustive, loadObjectReference, logPoll, notifyExit, poll, preCollectorSpawn, printDetailedTiming, printPostStats, printPreStats, printUsedPages, reservedMemory, resetCollectionTrigger, sanityExpectedRC, sanityLinearScan, setBuildTimeGCByte, setGCStatus, spawnCollectorThreads, stacksPrepared, startGCspyServer, storeObjectReference, stressTestGCRequired, totalMemory, triggerInternalCollectionRequest, usedMemorypublic static boolean hi
true if allocating into the "higher" semispacepublic static final CopySpace copySpace0
public static final int SS0
public static final CopySpace copySpace1
public static final int SS1
public static final int ALLOC_SS
public static final int SCAN_SS
public SS()
public void collectionPhase(short phaseId)
collectionPhase in class SimplephaseId - The unique id of the phase to perform.public final int getCollectionReserve()
getCollectionReserve in class Planpublic int getPagesUsed()
getPagesUsed in class Planpublic final int getPagesAvail()
getPagesAvail in class Planpublic boolean willNeverMove(ObjectReference object)
PlanwillNeverMove in class Planobject - The object in questiontrue if it is not possible that the object will ever move.protected void registerSpecializedMethods()
PlanregisterSpecializedMethods in class Plan