Package com.google.common.base
Class Stopwatch
java.lang.Object
com.google.common.base.Stopwatch
@Beta
@GwtCompatible(emulated=true)
@Deprecated(since="2022-12-01")
public final class Stopwatch
extends Object
Deprecated.
The Google Guava Core Libraries are deprecated and will not be part of the AEM SDK after April 2023
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 bynanoTimeat a different time.Stopwatchis 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.
- Since:
- 10.0
-
Constructor Summary
ConstructorsConstructorDescriptionDeprecated.UsecreateUnstarted()instead.Deprecated.UsecreateUnstarted(Ticker)instead. -
Method Summary
Modifier and TypeMethodDescriptionstatic StopwatchDeprecated.Creates (and starts) a new stopwatch usingSystem.nanoTime()as its time source.static StopwatchcreateStarted(Ticker ticker) Deprecated.Creates (and starts) a new stopwatch, using the specified time source.static StopwatchDeprecated.Creates (but does not start) a new stopwatch usingSystem.nanoTime()as its time source.static StopwatchcreateUnstarted(Ticker ticker) Deprecated.Creates (but does not start) a new stopwatch, using the specified time source.longDeprecated.Returns the current elapsed time shown on this stopwatch, expressed in the desired time unit, with any fraction rounded down.longDeprecated.Usestopwatch.elapsed(MILLISECONDS)instead.longelapsedTime(TimeUnit desiredUnit) Deprecated.Useelapsed(TimeUnit)instead.booleanDeprecated.reset()Deprecated.Sets the elapsed time for this stopwatch to zero, and places it in a stopped state.start()Deprecated.Starts the stopwatch.stop()Deprecated.Stops the stopwatch.toString()Deprecated.Returns a string representation of the current elapsed time.
-
Constructor Details
-
Stopwatch
Deprecated.UsecreateUnstarted()instead. This constructor is scheduled to be removed in Guava release 17.0.Creates (but does not start) a new stopwatch usingSystem.nanoTime()as its time source. -
Stopwatch
Deprecated.UsecreateUnstarted(Ticker)instead. This constructor is scheduled to be removed in Guava release 17.0.Creates (but does not start) a new stopwatch, using the specified time source.
-
-
Method Details
-
createUnstarted
Deprecated.Creates (but does not start) a new stopwatch usingSystem.nanoTime()as its time source.- Since:
- 15.0
-
createUnstarted
Deprecated.Creates (but does not start) a new stopwatch, using the specified time source.- Since:
- 15.0
-
createStarted
Deprecated.Creates (and starts) a new stopwatch usingSystem.nanoTime()as its time source.- Since:
- 15.0
-
createStarted
Deprecated.Creates (and starts) a new stopwatch, using the specified time source.- Since:
- 15.0
-
isRunning
public boolean isRunning()Deprecated. -
start
Deprecated.Starts the stopwatch.- Returns:
- this
Stopwatchinstance - Throws:
IllegalStateException- if the stopwatch is already running.
-
stop
Deprecated.Stops the stopwatch. Future reads will return the fixed duration that had elapsed up to this point.- Returns:
- this
Stopwatchinstance - Throws:
IllegalStateException- if the stopwatch is already stopped.
-
reset
Deprecated.Sets the elapsed time for this stopwatch to zero, and places it in a stopped state.- Returns:
- this
Stopwatchinstance
-
elapsed
Deprecated.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.NANOSECONDSprecision here.- Since:
- 14.0 (since 10.0 as
elapsedTime())
-
elapsedTime
Deprecated.Useelapsed(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.NANOSECONDSprecision here. -
elapsedMillis
Deprecated.Usestopwatch.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 toelapsed(TimeUnit.MILLISECONDS). -
toString
Deprecated.Returns a string representation of the current elapsed time.
-