|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.mmtk.policy.Space org.mmtk.policy.BaseLargeObjectSpace org.mmtk.policy.ExplicitLargeObjectSpace
public final class ExplicitLargeObjectSpace
Each instance of this class corresponds to one explicitly managed large object space.
Nested Class Summary | |
---|---|
static class |
ExplicitLargeObjectSpace.Sweeper
A callback used to perform sweeping of the large object space. |
Nested classes/interfaces inherited from class org.mmtk.policy.Space |
---|
Space.SpaceVisitor |
Field Summary | |
---|---|
private DoublyLinkedList |
cells
|
Fields inherited from class org.mmtk.policy.BaseLargeObjectSpace |
---|
PAGE_MASK |
Fields inherited from class org.mmtk.policy.Space |
---|
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 Summary | |
---|---|
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. |
Method Summary | |
---|---|
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. |
Methods inherited from class org.mmtk.policy.BaseLargeObjectSpace |
---|
free, getHeaderSize, getSize, getSuperPage |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
private final DoublyLinkedList cells
Constructor Detail |
---|
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.Method Detail |
---|
public void prepare()
public void release()
public void release(Address first)
release
in class Space
first
- The first page in the group of pages that were
allocated together.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
isLive
in class Space
object
- The object in question
true
if this object is known to be live (i.e. it is marked)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.
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |