org.codehaus.janino.util

Class Benchmark

public class Benchmark extends Object

Implements a scheme for benchmarking, i.e. for determining and/or reporting the time elapsed between the beginning and the end of an activity.

The measurement is done by invoking begin and later calling end whichs returns the time elapsed since the call to begin.

Notice that calls to begin and end can be nested, and each call to end refers to the matching begin call. To ensure that all calls match, the preferred way to write a benchmark is

 ...
 Benchmark b = new Benchmark();
 ...
 b.begin();
 try {
     ....
 } finally {
     long ms = b.end();
 }
 
This code layout also makes it visually easy to write correct pairs of begin / end pairs.

The pair beginReporting and endReporting do basically the same, but report the benchmarking information through an internal Reporter object. The default Reporter prints its messages by System.out.println().

Reporting is only enabled if the Benchmark object was created through Benchmark with a true argument.

Nested Class Summary
interfaceBenchmark.Reporter
Interface used to report messages.
Constructor Summary
Benchmark()
Benchmark(boolean reportingEnabled)
Set up a Benchmark with a default Reporter that reports to System.out.
Benchmark(boolean reportingEnabled, Benchmark.Reporter reporter)
Set up a Benchmark with a custom Reporter.
Method Summary
voidbegin()
voidbeginReporting()
Begin a benchmark (see begin) and report the fact.
voidbeginReporting(String message)
Begin a benchmark (see begin) and report the fact.
longend()
voidendReporting()
End a benchmark (see end) and report the fact.
voidendReporting(String message)
End a benchmark (see begin) and report the fact.
voidreport(String message)
Report the given message.
voidreport(String optionalTitle, Object o)
Report the title, a colon, a space, and the pretty-printed Object.

Constructor Detail

Benchmark

public Benchmark()

Benchmark

public Benchmark(boolean reportingEnabled)
Set up a Benchmark with a default Reporter that reports to System.out.

Benchmark

public Benchmark(boolean reportingEnabled, Benchmark.Reporter reporter)
Set up a Benchmark with a custom Reporter.

Method Detail

begin

public void begin()

See Also: Benchmark

beginReporting

public void beginReporting()
Begin a benchmark (see begin) and report the fact.

beginReporting

public void beginReporting(String message)
Begin a benchmark (see begin) and report the fact.

end

public long end()

See Also: Benchmark

endReporting

public void endReporting()
End a benchmark (see end) and report the fact.

endReporting

public void endReporting(String message)
End a benchmark (see begin) and report the fact.

report

public void report(String message)
Report the given message.

report

public void report(String optionalTitle, Object o)
Report the title, a colon, a space, and the pretty-printed Object.

Parameters: optionalTitle o