Class Benchmark


  • public class Benchmark
    extends java.lang.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.

    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static interface  Benchmark.Reporter
      Interface used to report messages.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void begin()  
      void beginReporting()
      Begins a benchmark (see begin()) and report the fact.
      void beginReporting​(java.lang.String message)
      Begins a benchmark (see begin()) and report the fact.
      long end()  
      void endReporting()
      End a benchmark (see end()) and report the fact.
      void endReporting​(java.lang.String message)
      Ends a benchmark (see begin()) and report the fact.
      void report​(java.lang.String message)
      Reports the given message.
      void report​(java.lang.String title, java.lang.Object o)
      Reports the title, a colon, a space, and the pretty-printed Object.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • begin

        public void begin()
        See Also:
        Benchmark
      • end

        public long end()
        See Also:
        Benchmark
      • beginReporting

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

        public void beginReporting​(java.lang.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​(java.lang.String message)
        Ends a benchmark (see begin()) and report the fact.
      • report

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

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