public class GenCopy extends Gen
NURSERY_THRESHOLD
.See the Jones & Lins GC book, chapter 7 for a detailed discussion of generational collection and section 7.3 for an overview of the flexible nursery behavior ("The Standard ML of New Jersey collector"), or go to Appel's paper "Simple generational garbage collection and fast allocation." SP&E 19(2):171--183, 1989.
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 |
---|---|
(package private) static boolean |
hi
true if copying to "higher" semispace |
(package private) static CopySpace |
matureSpace0
The low half of the copying mature space.
|
(package private) static CopySpace |
matureSpace1
The high half of the copying mature space.
|
(package private) Trace |
matureTrace |
(package private) static int |
MS0 |
(package private) static int |
MS1 |
ALLOC_MATURE, ALLOC_MATURE_MAJORGC, ALLOC_MATURE_MINORGC, ALLOC_NURSERY, arrayRemsetPool, fullHeap, gcFullHeap, IGNORE_REMSETS, MATURE_FRACTION, modbufPool, nextGCFullHeap, NURSERY, NURSERY_VM_FRACTION, nurseryCons, nurseryMark, nurserySpace, nurseryTrace, remsetPool, SCAN_MATURE, SCAN_NURSERY, SURVIVAL_ESTIMATE, USE_NON_HEAP_OBJECT_REFERENCE_WRITE_BARRIER, USE_OBJECT_BARRIER, USE_OBJECT_BARRIER_FOR_AASTORE, USE_OBJECT_BARRIER_FOR_PUTFIELD, wbFast, wbSlow
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 |
---|
GenCopy()
Constructor
|
Modifier and Type | Method and Description |
---|---|
Space |
activeMatureSpace()
Accessor method to allow the generic generational code in Gen.java
to access the mature space.
|
void |
collectionPhase(short phaseId)
Perform a (global) collection phase.
|
protected boolean |
copyMature() |
(package private) static CopySpace |
fromSpace() |
(package private) static int |
fromSpaceDesc() |
int |
getCollectionReserve()
Return the number of pages reserved for copying.
|
int |
getMaturePhysicalPagesAvail()
Return the number of pages available for allocation into the mature
space.
|
int |
getPagesUsed()
Return the number of pages reserved for use given the pending
allocation.
|
protected void |
registerSpecializedMethods()
Registers specialized methods.
|
(package private) static CopySpace |
toSpace() |
(package private) static int |
toSpaceDesc() |
collectionRequired, forceFullHeapCollection, fullyBooted, getPagesAvail, isCurrentGCNursery, lastCollectionFullHeap, printPreStats, requiresFullHeapCollection, sanityExpectedRC, traceFullHeap, willNeverMove
processOptions
replacePhase, replacePlaceholderPhase, switchNurseryZeroingApproach
availableMemory, bootTimeWriteBarrier, concurrentCollectionRequired, determineThreadCount, enableAllocation, enableCollection, freeMemory, gcInProgress, gcInProgressProper, getAllocationSite, getPagesReserved, getSpecializedScanClass, getTotalPages, handleUserCollectionRequest, harnessBegin, harnessEnd, insertPhaseAfter, isEmergencyCollection, isInitialized, isInternalTriggeredCollection, isUserTriggeredCollection, lastCollectionWasExhaustive, loadObjectReference, logPoll, notifyExit, poll, preCollectorSpawn, printDetailedTiming, printPostStats, printUsedPages, reservedMemory, resetCollectionTrigger, sanityLinearScan, setBuildTimeGCByte, setGCStatus, spawnCollectorThreads, stacksPrepared, startGCspyServer, storeObjectReference, stressTestGCRequired, totalMemory, triggerInternalCollectionRequest, usedMemory
static boolean hi
true
if copying to "higher" semispacestatic CopySpace matureSpace0
hi
is false
.static final int MS0
static CopySpace matureSpace1
hi
is true
.static final int MS1
final Trace matureTrace
public GenCopy()
protected boolean copyMature()
copyMature
in class Gen
static int toSpaceDesc()
static CopySpace fromSpace()
static int fromSpaceDesc()
public void collectionPhase(short phaseId)
collectionPhase
in class Gen
phaseId
- The unique id of the phase to perform.public int getPagesUsed()
getPagesUsed
in class Gen
public final int getCollectionReserve()
getCollectionReserve
in class Gen
public int getMaturePhysicalPagesAvail()
Gen
getMaturePhysicalPagesAvail
in class Gen
public Space activeMatureSpace()
Gen
activeMatureSpace
in class Gen
protected void registerSpecializedMethods()
Plan
registerSpecializedMethods
in class Gen