Class Benchmark

java.lang.Object
org.codehaus.commons.compiler.util.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 Benchmark.Reporter object. The default Benchmark.Reporter prints its messages by System.out.println().

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

  • Field Details

  • Constructor Details

  • Method Details

    • begin

      public void begin()
      See Also:
    • end

      public long end()
      See Also:
    • beginReporting

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

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

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

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

      public void report(String message)
      Reports the given message.
    • report

      public void report(@Nullable String title, @Nullable Object o)
      Reports the title, a colon, a space, and the pretty-printed Object.
    • reportIndented

      private void reportIndented(String message)
      Reports a message through reporter, indent by N spaces where N is the current benchmark stack depth.