
javadoc.com.google.common.base.Stopwatch.html Maven / Gradle / Ivy
The newest version!
Stopwatch (Guava: Google Core Libraries for Java 11.0.1 API)
Overview
Package
Class
Use
Tree
Deprecated
Index
Help
PREV CLASS
NEXT CLASS
FRAMES
NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD
DETAIL: FIELD | CONSTR | METHOD
com.google.common.base
Class Stopwatch
java.lang.Object
com.google.common.base.Stopwatch
@Beta
@GwtCompatible(emulated=true)
public final class Stopwatch
- extends 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 bynanoTime
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.elapsedMillis
(); 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
- Author:
- Kevin Bourrillion
Constructor Summary | |
---|---|
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 | |
---|---|
long |
elapsedMillis()
Returns the current elapsed time shown on this stopwatch, expressed in milliseconds, with any fraction rounded down. |
long |
elapsedTime(TimeUnit desiredUnit)
Returns the current elapsed time shown on this stopwatch, expressed in the desired time unit, with any fraction rounded down. |
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. |
String |
toString()
Returns a string representation of the current elapsed time; equivalent to toString(4) (four significant figures). |
String |
toString(int significantDigits)
Returns a string representation of the current elapsed time, choosing an appropriate unit and using the specified number of significant figures. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, 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
ifstart()
has been called on this stopwatch, andstop()
has not been called since the last call tostart()
.
start
public Stopwatch start()
- Starts the stopwatch.
- Returns:
- this
Stopwatch
instance - Throws:
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:
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
elapsedTime
public long elapsedTime(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.
elapsedMillis
public long elapsedMillis()
- Returns the current elapsed time shown on this stopwatch, expressed
in milliseconds, with any fraction rounded down. This is identical to
elapsedTime(TimeUnit.MILLISECONDS
.
toString
@GwtIncompatible(value="String.format()") public String toString()
- Returns a string representation of the current elapsed time; equivalent to
toString(4)
(four significant figures).
toString
@GwtIncompatible(value="String.format()") public String toString(int significantDigits)
- 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
elapsedTime(NANOSECONDS)
would return {1234567},toString(4)
returns"1.235 ms"
.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
Copyright © 2010-2012. All Rights Reserved.
© 2015 - 2025 Weber Informatics LLC | Privacy Policy