public final class TimeUtil
extends java.lang.Object
Provides access to a high performance timer. This class creates a polyfill function on first access that uses the following APIs in the priority of given order.
window.performance.now()
→ window.performance.webkitNow()
→ Date.now()
The first two are high performance timers, which provide timestamps with microsecond precision. The last one is a
low performance timer and is used as a fallback when the first two are not available. At first we check if the
window.performance.now()
is supported or not. If not then a check is performed for window.performance
.webkitNow()
and finally if everything fails we use Date.now()
as the last option.
Modifier and Type | Class and Description |
---|---|
static class |
TimeUtil.Implementation
An enumeration used to describe the method this polyfill is using to report time stamps.
|
Modifier and Type | Method and Description |
---|---|
static double |
currentMicros()
Returns the current time stamp in the unit of micro seconds.
|
static double |
currentMillis()
Returns the current time stamp in the unit of milli seconds.
|
static double |
currentNanos()
Returns the current time stamp in the unit of nano seconds.
|
static double |
currentSeconds()
Returns the current time stamp in the unit of seconds.
|
static TimeUtil.Implementation |
getImplementation()
Returns the implementation that this polyfill uses.
|
public static double currentSeconds()
public static double currentMillis()
public static double currentMicros()
public static double currentNanos()
public static TimeUtil.Implementation getImplementation()
window.performance.now()
in the best case
or window.performance.webkitNow()
in the average case. In the worst case if both those timers are not
available, that is we are using Date.now()
it returns TimeUtil.Implementation.LOW_PERFORMANCE
.