Documentation of 'com.google.common.base.Stopwatch' Java class
Stopwatch
com.google.common.base

Class Stopwatch



  • @Beta
     @GwtCompatible(emulated=true)
    public final class Stopwatch
    extends java.lang.Object
    An object that measures elapsed time in nanoseconds. It is useful to measure elapsed time using this class instead of direct calls to System.nanoTime() for a few reasons:
    • An alternate time source can be substituted, for testing or performance reasons.
    • As documented by nanoTime, the value returned has no absolute meaning, and can only be interpreted as relative to another timestamp returned by nanoTime at a different time. Stopwatch is a more effective abstraction because it exposes only these relative values, not the absolute ones.

    Basic usage:

       Stopwatch stopwatch = new Stopwatch().start();
       doSomething();
       stopwatch.stop(); // optional
    
       long millis = stopwatch.elapsed(MILLISECONDS);
    
       log.info("that took: " + stopwatch); // formatted string like "12.3 ms"
     

    Stopwatch methods are not idempotent; it is an error to start or stop a stopwatch that is already in the desired state.

    When testing code that uses this class, use the alternate constructor to supply a fake or mock ticker. This allows you to simulate any valid behavior of the stopwatch.

    Note: This class is not thread-safe.

    Since:
    10.0
    • Constructor Summary

      Constructors 
      Constructor and Description
      Stopwatch()
      Creates (but does not start) a new stopwatch using System.nanoTime() as its time source.
      Stopwatch(Ticker ticker)
      Creates (but does not start) a new stopwatch, using the specified time source.
    • Method Summary

      All Methods Instance Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method and Description
      long elapsed(java.util.concurrent.TimeUnit desiredUnit)
      Returns the current elapsed time shown on this stopwatch, expressed in the desired time unit, with any fraction rounded down.
      long elapsedMillis()
      Deprecated. 
      Use stopwatch.elapsed(MILLISECONDS) instead. This method is scheduled to be removed in Guava release 16.0.
      long elapsedTime(java.util.concurrent.TimeUnit desiredUnit)
      Deprecated. 
      Use elapsed(TimeUnit) instead. This method is scheduled to be removed in Guava release 16.0.
      boolean isRunning()
      Returns true if start() has been called on this stopwatch, and stop() has not been called since the last call to start().
      Stopwatch reset()
      Sets the elapsed time for this stopwatch to zero, and places it in a stopped state.
      Stopwatch start()
      Starts the stopwatch.
      Stopwatch stop()
      Stops the stopwatch.
      java.lang.String toString()
      Returns a string representation of the current elapsed time.
      java.lang.String toString(int significantDigits)
      Deprecated. 
      Use toString() instead. This method is scheduled to be removed in Guava release 15.0.
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • Stopwatch

        public Stopwatch()
        Creates (but does not start) a new stopwatch using System.nanoTime() as its time source.
      • Stopwatch

        public Stopwatch(Ticker ticker)
        Creates (but does not start) a new stopwatch, using the specified time source.
    • Method Detail

      • isRunning

        public boolean isRunning()
        Returns true if start() has been called on this stopwatch, and stop() has not been called since the last call to start().
      • start

        public Stopwatch start()
        Starts the stopwatch.
        Returns:
        this Stopwatch instance
        Throws:
        java.lang.IllegalStateException - if the stopwatch is already running.
      • stop

        public Stopwatch stop()
        Stops the stopwatch. Future reads will return the fixed duration that had elapsed up to this point.
        Returns:
        this Stopwatch instance
        Throws:
        java.lang.IllegalStateException - if the stopwatch is already stopped.
      • reset

        public Stopwatch reset()
        Sets the elapsed time for this stopwatch to zero, and places it in a stopped state.
        Returns:
        this Stopwatch instance
      • elapsed

        public long elapsed(java.util.concurrent.TimeUnit desiredUnit)
        Returns the current elapsed time shown on this stopwatch, expressed in the desired time unit, with any fraction rounded down.

        Note that the overhead of measurement can be more than a microsecond, so it is generally not useful to specify TimeUnit.NANOSECONDS precision here.

        Since:
        14.0 (since 10.0 as elapsedTime())
      • elapsedTime

        @Deprecated
        public long elapsedTime(java.util.concurrent.TimeUnit desiredUnit)
        Deprecated. Use elapsed(TimeUnit) instead. This method is scheduled to be removed in Guava release 16.0.
        Returns the current elapsed time shown on this stopwatch, expressed in the desired time unit, with any fraction rounded down.

        Note that the overhead of measurement can be more than a microsecond, so it is generally not useful to specify TimeUnit.NANOSECONDS precision here.

      • elapsedMillis

        @Deprecated
        public long elapsedMillis()
        Deprecated. Use stopwatch.elapsed(MILLISECONDS) instead. This method is scheduled to be removed in Guava release 16.0.
        Returns the current elapsed time shown on this stopwatch, expressed in milliseconds, with any fraction rounded down. This is identical to elapsed(TimeUnit.MILLISECONDS).
      • toString

        @GwtIncompatible(value="String.format()")
        public java.lang.String toString()
        Returns a string representation of the current elapsed time.
        Overrides:
        toString in class java.lang.Object
      • toString

        @Deprecated
         @GwtIncompatible(value="String.format()")
        public java.lang.String toString(int significantDigits)
        Deprecated. Use toString() instead. This method is scheduled to be removed in Guava release 15.0.
        Returns a string representation of the current elapsed time, choosing an appropriate unit and using the specified number of significant figures. For example, at the instant when elapsed(NANOSECONDS) would return {1234567}, toString(4) returns "1.235 ms".

DMelt 3.0 © DataMelt by jWork.ORG

You see the box below because you did not login.