org.mmtk.utility.statistics
Class LongCounter

java.lang.Object
  extended by org.mmtk.utility.statistics.Counter
      extended by org.mmtk.utility.statistics.LongCounter
Direct Known Subclasses:
PerfEvent, Timer

public abstract class LongCounter
extends Counter

This abstract class implements a simple counter (counting some integer (long) value for each phase).


Field Summary
private  long[] count
           
private  boolean running
           
private  long startValue
           
protected  long totalCount
           
 
Fields inherited from class org.mmtk.utility.statistics.Counter
complex
 
Constructor Summary
LongCounter(String name)
          Constructor
LongCounter(String name, boolean start)
          Constructor
LongCounter(String name, boolean start, boolean mergephases)
          Constructor
 
Method Summary
protected abstract  long getCurrentValue()
           
(package private)  long getLastTotal()
          Get the total as at the lasts phase
protected  void phaseChange(int oldPhase)
          The phase has changed (from GC to mutator or mutator to GC).
protected  void printCount(int phase)
          Print the value of this counter for the given phase
protected  void printMax(boolean mutator)
          Print the current maximum value for either the mutator or GC phase
protected  void printMin(boolean mutator)
          Print the current minimum value for either the mutator or GC phase
 void printTotal()
          Print the current total for this counter
protected  void printTotal(boolean mutator)
          Print the current total for either the mutator or GC phase
(package private)  void printValue(long value)
          Print the given value
 void start()
          Start this counter
 void stop()
          Stop this counter
 
Methods inherited from class org.mmtk.utility.statistics.Counter
getColumnSuffix, getName, getStart, isComplex, mergePhases, printLast
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

count

private final long[] count

startValue

private long startValue

totalCount

protected long totalCount

running

private boolean running
Constructor Detail

LongCounter

LongCounter(String name)
Constructor

Parameters:
name - The name to be associated with this counter

LongCounter

LongCounter(String name,
            boolean start)
Constructor

Parameters:
name - The name to be associated with this counter
start - True if this counter is to be implicitly started when startAll() is called (otherwise the counter must be explicitly started).

LongCounter

LongCounter(String name,
            boolean start,
            boolean mergephases)
Constructor

Parameters:
name - The name to be associated with this counter
start - True if this counter is to be implicitly started when startAll() is called (otherwise the counter must be explicitly started).
mergephases - True if this counter does not separately report GC and Mutator phases.
Method Detail

getCurrentValue

protected abstract long getCurrentValue()

start

public void start()
Start this counter

Specified by:
start in class Counter

stop

public void stop()
Description copied from class: Counter
Stop this counter

Specified by:
stop in class Counter

phaseChange

protected void phaseChange(int oldPhase)
The phase has changed (from GC to mutator or mutator to GC). Take action with respect to the last phase if necessary. Do nothing in this case.

Specified by:
phaseChange in class Counter
Parameters:
oldPhase - The last phase

printCount

protected final void printCount(int phase)
Print the value of this counter for the given phase Print '0' for false, '1' for true.

Specified by:
printCount in class Counter
Parameters:
phase - The phase to be printed

printTotal

public final void printTotal()
Description copied from class: Counter
Print the current total for this counter

Specified by:
printTotal in class Counter

getLastTotal

long getLastTotal()
Get the total as at the lasts phase

Returns:
The total as at the last phase

printTotal

protected final void printTotal(boolean mutator)
Description copied from class: Counter
Print the current total for either the mutator or GC phase

Specified by:
printTotal in class Counter
Parameters:
mutator - true if the total for the mutator phases is to be printed (otherwise the total for the GC phases will be printed).

printMin

protected final void printMin(boolean mutator)
Description copied from class: Counter
Print the current minimum value for either the mutator or GC phase

Specified by:
printMin in class Counter
Parameters:
mutator - true if the minimum for the mutator phase is to be printed (otherwise the minimum for the GC phase will be printed).

printMax

protected final void printMax(boolean mutator)
Description copied from class: Counter
Print the current maximum value for either the mutator or GC phase

Specified by:
printMax in class Counter
Parameters:
mutator - true if the maximum for the mutator phase is to be printed (otherwise the maximum for the GC phase will be printed).

printValue

void printValue(long value)
Print the given value

Parameters:
value - The value to be printed