The High Resolution Time standard defines a
interface that supports client-side latency measurements within applications. The Performance
interfaces are considered high resolution because they are accurate to a thousandth of a millisecond (subject to hardware or software constraints). The interfaces support a number of use cases including calculating frame-rates (potentially important in animations) and benchmarking (such as the time to load a resource).Performance
Since a platform's system clock is subject to various skews (such as NTP adjustments), the interfaces support a monotonic clock i.e. a clock that is always increasing. As such, the
Performance
API defines a DOMHighResTimeStamp
type rather than using the Date.now()
interface.The
type, as its name implies, represents a high resolution point in time. This type is a DOMHighResTimeStamp
double
and is used by the performance interfaces. The value could be a discrete point in time or the difference in time between two discrete points in time.The unit of
DOMHighResTimeStamp
is milliseconds and should be accurate to 5 µs (microseconds). However, If the browser is unable to provide a time value accurate to 5 microseconds (because, for example, due to hardware or software constraints), the browser can represent a the value as a time in milliseconds accurate to a millisecond.The
interface has two methods. The Performance
method returns a now()
whose value that depends on the DOMHighResTimeStamp
and scope. If the scope is a window, the value is the time the browser context was created and if the scope is a navigation start
, the value is the time the worker was created.worker
The
method returns a serialization of the toJSON()
object, for those attributes that can be serialized.Performance
The
interface has two properties. The Performance
property returns a timing
object containing latency-related performance information such as the start of navigation time, start and end times for redirects, start and end times for responses, etc.PerformanceTiming
The
property returns a navigation
object representing the type of navigation that occurs in the given browsing context, such as the page was navigated to from history, the page was navigated to by following a link, etc.PerformanceNavigation
Provides methods and properties containing timing-related performance information for the given page.
Provides methods and properties the encapsulate a single performance metric that is part of the performance timeline.
Provides methods and properties containing frame timing data about the browser's event loop.
An abstract interface for
with an performance entries
of "entry type
mark
". Entries of this type are created by calling performance.mark()
to add a named DOMHighResTimeStamp
(the mark) to the browser's performance timeline.An abstract interface for
with an performance entries
of "entry type
measure
". Entries of this type are created by calling performance.measure()
to add a named DOMHighResTimeStamp
(the measure) between two marks to the browser's performance timeline.Provides methods and properties to store and retrieve
or metrics regarding the browser's document navigation events. high resolution timestamps
Provides methods and properties used to observe performance measurement events and be notified of new performance entries as they are recorded in the browser's performance timeline.
Provides methods and properties for retrieving and analyzing detailed network timing data regarding the loading of an application's resources.
As shown in the
interface's Browser Compatibility table, most of these interfaces are broadly implemented by desktop browsers.Performance
To test your browser's support for the
interface, run the Performance
application.perf-api-support