类 Stopwatch
java.lang.Object
ai.nextbillion.maps.internal.ratelimiter.Stopwatch
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 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.
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();
}
});
- 作者:
- Kevin Bourrillion
-
方法概要
修饰符和类型 方法 说明 static StopwatchcreateStarted()static StopwatchcreateStarted(Ticker ticker)static StopwatchcreateUnstarted()static StopwatchcreateUnstarted(Ticker ticker)longelapsed(java.util.concurrent.TimeUnit desiredUnit)booleanisRunning()Stopwatchreset()Stopwatchstart()Stopwatchstop()java.lang.StringtoString()
-
方法详细资料
-
createUnstarted
-
createUnstarted
-
createStarted
-
createStarted
-
isRunning
public boolean isRunning() -
start
-
stop
-
reset
-
elapsed
public long elapsed(java.util.concurrent.TimeUnit desiredUnit) -
toString
public java.lang.String toString()- 覆盖:
toString在类中java.lang.Object
-