public final class ExplicitLargeObjectSpace extends BaseLargeObjectSpace
Modifier and Type | Class and Description |
---|---|
static class |
ExplicitLargeObjectSpace.Sweeper
A callback used to perform sweeping of the large object space.
|
Space.SpaceVisitor
Modifier and Type | Field and Description |
---|---|
private DoublyLinkedList |
cells |
PAGE_MASK
AVAILABLE_BYTES, AVAILABLE_END, AVAILABLE_PAGES, AVAILABLE_START, BYTES_IN_CHUNK, contiguous, descriptor, extent, headDiscontiguousRegion, HEAP_END, HEAP_START, immortal, LOG_ADDRESS_SPACE, LOG_BYTES_IN_CHUNK, MAX_CHUNKS, MAX_SPACES, movable, PAGES_IN_CHUNK, pr, start, zeroed
Constructor and Description |
---|
ExplicitLargeObjectSpace(String name,
boolean zeroed,
VMRequest vmRequest)
The caller specifies the region of virtual memory to be used for
this space.
|
ExplicitLargeObjectSpace(String name,
VMRequest vmRequest)
The caller specifies the region of virtual memory to be used for
this space.
|
Modifier and Type | Method and Description |
---|---|
protected int |
cellHeaderSize()
Return the size of the per-cell header for cells of a given class
size.
|
void |
free(ObjectReference object)
Free an object
|
void |
initializeHeader(ObjectReference object,
boolean alloc)
Perform any required initialization of the GC portion of the header.
|
boolean |
isLive(ObjectReference object)
Is the object in this space alive?
|
void |
prepare()
Prepare for a new collection increment.
|
void |
release()
A new collection increment has completed.
|
void |
release(Address first)
Release a group of pages that were allocated together.
|
protected int |
superPageHeaderSize()
Return the size of the per-superpage header required by this
system.
|
void |
sweep(ExplicitLargeObjectSpace.Sweeper sweeper)
Sweep through all the objects in this space.
|
ObjectReference |
traceObject(TransitiveClosure trace,
ObjectReference object)
Trace a reference to an object under a mark sweep collection
policy.
|
free, getHeaderSize, getSize, getSuperPage
acquire, availablePhysicalPages, chunkAlign, chunkAlign, committedPages, cumulativeCommittedPages, eagerlyMmapMMTkContiguousSpaces, eagerlyMmapMMTkDiscontiguousSpaces, eagerlyMmapMMTkSpaces, getDescriptor, getDiscontigEnd, getDiscontigStart, getExtent, getFracAvailable, getHeadDiscontiguousRegion, getIndex, getName, getSpaceCount, getSpaceForAddress, getSpaceForObject, getSpaces, getStart, growDiscontiguousSpace, growSpace, isImmortal, isImmortal, isInSpace, isInSpace, isMappedAddress, isMappedObject, isMovable, isMovable, isReachable, printUsageMB, printUsagePages, printVMMap, releaseAllChunks, releaseDiscontiguousChunks, requiredChunks, reservedPages, setZeroingApproach, skipConcurrentZeroing, triggerConcurrentZeroing, visitSpaces
private final DoublyLinkedList cells
public ExplicitLargeObjectSpace(String name, VMRequest vmRequest)
name
- The name of this space (used when printing error messages etc)vmRequest
- An object describing the virtual memory requested.public ExplicitLargeObjectSpace(String name, boolean zeroed, VMRequest vmRequest)
name
- The name of this space (used when printing error messages etc)zeroed
- if true
, allocations return zeroed memory.vmRequest
- An object describing the virtual memory requested.public void prepare()
public void release()
public void initializeHeader(ObjectReference object, boolean alloc)
object
- the object ref to the storage to be initializedalloc
- is this initialization occuring due to (initial) allocation
(true
) or due to copying (false
)?public ObjectReference traceObject(TransitiveClosure trace, ObjectReference object)
traceObject
in class Space
trace
- The trace being conducted.object
- The object to be traced.public boolean isLive(ObjectReference object)
Space
protected int superPageHeaderSize()
BaseLargeObjectSpace
superPageHeaderSize
in class BaseLargeObjectSpace
protected int cellHeaderSize()
BaseLargeObjectSpace
cellHeaderSize
in class BaseLargeObjectSpace
public void sweep(ExplicitLargeObjectSpace.Sweeper sweeper)
sweeper
- The sweeper callback to use.public void free(ObjectReference object)
object
- The object to be freed.