|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||
java.lang.Objectorg.mmtk.plan.Plan
org.mmtk.plan.Simple
org.mmtk.plan.StopTheWorld
org.mmtk.plan.immix.Immix
public class Immix
This class implements the global state of an immix collector. See the PLDI'08 paper by Blackburn and McKinley for a description of the algorithm: http://doi.acm.org/10.1145/1375581.1375586 All plans make a clear distinction between global and thread-local activities, and divides global and local state into separate class hierarchies. Global activities must be synchronized, whereas no synchronization is required for thread-local activities. There is a single instance of Plan (or the appropriate sub-class), and a 1:1 mapping of PlanLocal to "kernel threads" (aka CPUs or in Jikes RVM, Processors). Thus instance methods of PlanLocal allow fast, unsychronized access to functions such as allocation and collection. The global instance defines and manages static resources (such as memory and virtual memory resources). This mapping of threads to instances is crucial to understanding the correctness and performance properties of MMTk plans.
| Field Summary | |
|---|---|
boolean |
collectWholeHeap
will this collection collect the whole heap |
static int |
IMMIX
|
static ImmixSpace |
immixSpace
Class variables |
Trace |
immixTrace
Instance variables |
protected boolean |
lastGCWasDefrag
|
boolean |
nextGCWholeHeap
will the next collection collect the whole heap? |
static int |
SCAN_DEFRAG
|
static int |
SCAN_IMMIX
|
| Fields inherited from class org.mmtk.plan.StopTheWorld |
|---|
postSanityPhase, preSanityPhase |
| Constructor Summary | |
|---|---|
Immix()
Constructor. |
|
| Method Summary | |
|---|---|
void |
collectionPhase(short phaseId)
Perform a (global) collection phase. |
int |
getPagesRequired()
Calculate the number of pages a collection is required to free to satisfy outstanding allocation requests. |
int |
getPagesUsed()
Return the number of pages reserved for use given the pending allocation. |
boolean |
lastCollectionWasExhaustive()
|
protected void |
registerSpecializedMethods()
Register specialized methods. |
boolean |
willNeverMove(ObjectReference object)
Can this object ever move. |
| Methods inherited from class org.mmtk.plan.StopTheWorld |
|---|
postBoot |
| Methods inherited from class org.mmtk.plan.Simple |
|---|
replacePhase, replacePlaceholderPhase |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static final ImmixSpace immixSpace
public static final int IMMIX
public static final int SCAN_IMMIX
public static final int SCAN_DEFRAG
public final Trace immixTrace
public boolean nextGCWholeHeap
public boolean collectWholeHeap
protected boolean lastGCWasDefrag
| Constructor Detail |
|---|
public Immix()
| Method Detail |
|---|
public void collectionPhase(short phaseId)
collectionPhase in class SimplephaseId - Collection phase to execute.public boolean lastCollectionWasExhaustive()
lastCollectionWasExhaustive in class Planpublic int getPagesUsed()
getPagesUsed in class Planpublic int getPagesRequired()
getPagesRequired in class Planpublic boolean willNeverMove(ObjectReference object)
Plan
willNeverMove in class Planobject - Object in question
Plan.willNeverMove(org.vmmagic.unboxed.ObjectReference)protected void registerSpecializedMethods()
registerSpecializedMethods in class Plan
|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||