public class MeterManager
extends java.lang.Object
TimingMeter
instances. Those instances are looked up by meter "title", a
string name for the meter. Meter instances also have a string
"category", so you can turn metering on and off by category.
All public methods of MeterManager are static, so the user
doesn't have to worry about managing the instance of
MeterManager.
The workflow is that the user program creates several meters by
calling the static MakeMeter method, passing the title and
category of the meter. That method looks up the meter by title,
creating it if it doesn't already exists, and returns the meter.
Thereafter, the user invokes the TimingMeter.Enter()
and
TimingMeter.Exit()
methods, each of which causes the
MeterManager to add a record to a collection of entries and
exits. The record has the identity of the meter; whether it's
an entry or exit, and the time in processor ticks, captured
using the assembler primitive RDTSC. At any point, the program
can call the method Report()
,
which produces a report based on the trace.
Modifier and Type | Class and Description |
---|---|
protected static class |
MeterManager.MeterEvent |
protected static class |
MeterManager.MeterStackEntry |
Modifier and Type | Field and Description |
---|---|
static boolean |
Collecting |
static int |
DontDisplayUsecs |
protected static boolean |
dumpEventLog |
static short |
ekEnter |
static short |
ekExit |
protected java.util.Vector<MeterManager.MeterEvent> |
eventTrace |
protected static MeterManager |
instance |
protected java.util.HashMap<java.lang.Short,TimingMeter> |
metersById |
protected java.util.HashMap<java.lang.String,TimingMeter> |
metersByTitle |
protected long |
startTime |
protected short |
timerIdCounter |
Modifier | Constructor and Description |
---|---|
protected |
MeterManager() |
Modifier and Type | Method and Description |
---|---|
static int |
AddEvent(TimingMeter meter,
short eventKind) |
protected static void |
BarfOnBadChars(java.lang.String name,
java.lang.String nameDescription) |
protected boolean |
BooleanOption(java.lang.String name,
java.util.HashMap<java.lang.String,java.lang.String> options) |
protected static long |
CaptureCurrentTime() |
static void |
ClearEvents() |
static void |
DumpEventLog() |
protected void |
DumpEventLogInternal() |
static void |
EnableCategory(java.lang.String categoryName,
boolean enable) |
protected void |
GenerateReport(java.io.FileWriter writer,
int start,
java.util.HashMap<java.lang.String,java.lang.String> options) |
static TimingMeter |
GetMeter(java.lang.String title,
java.lang.String category) |
static TimingMeter |
GetMeter(java.lang.String title,
java.lang.String category,
boolean accumulate) |
protected TimingMeter |
GetMeterById(int id) |
protected java.lang.String |
IndentCount(int count) |
static void |
Init() |
protected int |
IntOption(java.lang.String name,
java.util.HashMap<java.lang.String,java.lang.String> options) |
protected java.lang.String |
OptionValue(java.lang.String name,
java.util.HashMap<java.lang.String,java.lang.String> options) |
static void |
Report(java.lang.String title) |
static void |
Report(java.lang.String title,
java.io.FileWriter writer,
int start,
java.lang.String optionsString) |
static void |
SaveToFile(java.lang.String pathname) |
protected void |
SaveToFileInternal(java.lang.String pathname) |
static long |
StartTime() |
protected long |
ToMicroseconds(long ticks) |
protected static MeterManager instance
protected short timerIdCounter
protected long startTime
protected java.util.Vector<MeterManager.MeterEvent> eventTrace
protected java.util.HashMap<java.lang.String,TimingMeter> metersByTitle
protected java.util.HashMap<java.lang.Short,TimingMeter> metersById
protected static boolean dumpEventLog
public static boolean Collecting
public static int DontDisplayUsecs
public static short ekEnter
public static short ekExit
protected static long CaptureCurrentTime()
protected java.lang.String OptionValue(java.lang.String name, java.util.HashMap<java.lang.String,java.lang.String> options)
protected boolean BooleanOption(java.lang.String name, java.util.HashMap<java.lang.String,java.lang.String> options)
protected int IntOption(java.lang.String name, java.util.HashMap<java.lang.String,java.lang.String> options)
protected static void BarfOnBadChars(java.lang.String name, java.lang.String nameDescription) throws java.lang.Exception
java.lang.Exception
protected TimingMeter GetMeterById(int id)
protected void SaveToFileInternal(java.lang.String pathname)
protected java.lang.String IndentCount(int count)
protected long ToMicroseconds(long ticks)
protected void DumpEventLogInternal()
protected void GenerateReport(java.io.FileWriter writer, int start, java.util.HashMap<java.lang.String,java.lang.String> options)
public static void Init()
public static void EnableCategory(java.lang.String categoryName, boolean enable)
public static TimingMeter GetMeter(java.lang.String title, java.lang.String category)
public static TimingMeter GetMeter(java.lang.String title, java.lang.String category, boolean accumulate)
public static int AddEvent(TimingMeter meter, short eventKind)
public static void ClearEvents()
public static void SaveToFile(java.lang.String pathname)
public static long StartTime()
public static void Report(java.lang.String title)
public static void Report(java.lang.String title, java.io.FileWriter writer, int start, java.lang.String optionsString)
public static void DumpEventLog()