@GwtCompatible public final class Stopwatch extends Object
System.nanoTime() for a few reasons:
 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 = Stopwatch.createStarted();
 doSomething();
 stopwatch.stop(); // optional
 long millis = stopwatch.elapsed(MILLISECONDS);
 log.info("time: " + 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 createUnstarted(Ticker) or createStarted(Ticker) 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.
Warning for Android users: a stopwatch with default behavior may not continue to keep time while the device is asleep. Instead, create one like this:
 Stopwatch.createStarted(
      new Ticker() {
        public long read() {
          return android.os.SystemClock.elapsedRealtimeNanos();
        }
      });
 | Modifier and Type | Method and Description | 
|---|---|
static Stopwatch | 
createStarted()
Creates (and starts) a new stopwatch using  
System.nanoTime() as its time source. | 
static Stopwatch | 
createStarted(Ticker ticker)
Creates (and starts) a new stopwatch, using the specified time source. 
 | 
static Stopwatch | 
createUnstarted()
Creates (but does not start) a new stopwatch using  
System.nanoTime() as its time source. | 
static Stopwatch | 
createUnstarted(Ticker ticker)
Creates (but does not start) a new stopwatch, using the specified time source. 
 | 
long | 
elapsed(TimeUnit desiredUnit)
Returns the current elapsed time shown on this stopwatch, expressed in the desired time unit,
 with any fraction rounded down. 
 | 
boolean | 
isRunning()
 | 
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. 
 | 
String | 
toString()
Returns a string representation of the current elapsed time. 
 | 
public static Stopwatch createUnstarted()
System.nanoTime() as its time source.public static Stopwatch createUnstarted(Ticker ticker)
public static Stopwatch createStarted()
System.nanoTime() as its time source.public static Stopwatch createStarted(Ticker ticker)
public boolean isRunning()
@CanIgnoreReturnValue public Stopwatch start()
Stopwatch instanceIllegalStateException - if the stopwatch is already running.@CanIgnoreReturnValue public Stopwatch stop()
Stopwatch instanceIllegalStateException - if the stopwatch is already stopped.@CanIgnoreReturnValue public Stopwatch reset()
Stopwatch instancepublic long elapsed(TimeUnit desiredUnit)
Note that the overhead of measurement can be more than a microsecond, so it is generally not
 useful to specify TimeUnit.NANOSECONDS precision here.
elapsedTime())Copyright © 2010–2019. All rights reserved.