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_MASKAVAILABLE_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, getSuperPageacquire, 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, visitSpacesprivate 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 Spacetrace - The trace being conducted.object - The object to be traced.public boolean isLive(ObjectReference object)
Spaceprotected int superPageHeaderSize()
BaseLargeObjectSpacesuperPageHeaderSize in class BaseLargeObjectSpaceprotected int cellHeaderSize()
BaseLargeObjectSpacecellHeaderSize in class BaseLargeObjectSpacepublic void sweep(ExplicitLargeObjectSpace.Sweeper sweeper)
sweeper - The sweeper callback to use.public void free(ObjectReference object)
object - The object to be freed.