The Performance interface represents timing-related performance information for the given page.

An object of this type can be obtained by calling the Window.performance read-only attribute.

Note: This interface and its members are available in Web Workers, except where indicated below. Note that some available parts of the interface are not yet documented (see the Performance Timeline and User Timing specs for more details.) Also note that performance markers and measures are per context. If you create a mark on the main thread (or other worker), you cannot see it in a worker thread, and vice versa.

Properties

The Performance interface doesn't inherit any properties.

Performance.navigation Read only Not available to workers
Is a PerformanceNavigation object representing the type of navigation that occurs in the given browsing context, like the amount of redirections needed to fetch the resource.
Performance.onframetimingbufferfull Not available to workers
TBD
Performance.onresourcetimingbufferfull
Is an EventTarget which is a callback that will be called when the resourcetimingbufferfull event is fired.
Performance.timing Read only Not available to workers
Is a PerformanceTiming object containing latency-related performance information.

Methods

The Performance interface doesn't inherit any method.

Performance.clearFrameTimings() Not available to workers
TBD
Performance.clearMarks()
Removes the given mark from the browser's performance entry buffer.
Performance.clearMeasures()
Removes the given measure from the browser's performance entry buffer.
Performance.clearResourceTimings()
Removes all performance entries with a entryType of "resource" from the browser's performance data buffer.
Performance.getEntries()
Returns a list of PerformanceEntry objects based on the given filter.
Performance.getEntriesByName()
Returns a list of PerformanceEntry objects based on the given name and entry type.
Performance.getEntriesByType()
Returns a list of PerformanceEntry objects of the given entry type.
Performance.mark()
Creates a timestamp in the browser's performance entry buffer with the given name.
Performance.measure()
Creates a named timestamp in the browser's performance entry buffer between two specified marks (known as the start mark and end mark, respectively).
Performance.now()
Returns a DOMHighResTimeStamp representing the amount of milliseconds elapsed since a reference instant.
Performance.setFrameTimingBufferSize() Not available to workers
TBD
Performance.setResourceTimingBufferSize()
Sets the browser's resource timing buffer size to the specified number of "resource" type performance entry objects.
Performance.toJSON() Not available to workers
Is a jsonizer returning a json object representing the Performance object.

Specifications

Specification Status Comment
High Resolution Time Level 2
The definition of 'toJSON()' in that specification.
Editor's Draft Defines toJson() method.
High Resolution Time
The definition of 'Performance' in that specification.
Recommendation Defines now() method.
Navigation Timing
The definition of 'Performance' in that specification.
Recommendation Defines timing and navigation properties.
Performance Timeline Time Level 2
The definition of 'Performance extensions' in that specification.
Editor's Draft Changes getEntries() interface.
Performance Timeline
The definition of 'Performance extensions' in that specification.
Recommendation Defines getEntries(), getEntriesByType() and getEntriesByName() methods.
Resource Timing
The definition of 'Performance extensions' in that specification.
Editor's Draft Defines clearResourceTimings() and setResourceTimingBufferSize() methods and the onresourcetimingbufferfull property.
User Timing
The definition of 'Performance extensions' in that specification.
Editor's Draft Clarifies mark(), clearMark(), measure() and clearMeasure() methods.
User Timing
The definition of 'Performance extensions' in that specification.
Recommendation Defines mark(), clearMark(), measure() and clearMeasure() methods.
Unknown
The definition of 'Performance extensions' in that specification.
Recommendation Defines clearFrameTimings(), setFrameTimingBufferSize(), and onframetimingbufferfull methods.

Browser compatibility

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support (timing attribute) 6.0 [1] 7.0 (7.0) 9.0 15.0 8
navigation attribute 9 7 (7) 9.0 15 8
now() on regular context 20.0 webkit
24.0
15.0 (15.0) 10.0 (Yes) 8
now() in Web workers. 33.0 34.0 (34.0) ? (Yes) No support
toJSON() No support 25.0 (25.0) 9.0 No support No support
getEntries(), getEntriesByType(), getEntriesByName() (Yes) (Yes) (Yes) (Yes) No support
clearResourceTimings(), setResourceTimingBufferSize() (Yes) (Yes) (Yes) (Yes) No support
onresourcetimingbufferfull (Yes) (Yes) No support (Yes) No support
mark(), clearMarks(), measure(), clearMeasure() 43.0 41 10 33 No support
clearFrameTimings(), setFrameTimingBufferSize(), and onframetimingbufferfull ? ? ? ? ?
Feature Android Android Webview Firefox Mobile (Gecko) Firefox OS IE Phone Opera Mobile Safari Mobile Chrome for Android
Basic support No support (Yes) 7.0 (7.0) 1.0 (7.0) 9.0 15.0 9 (Yes)
navigation attribute No support (Yes) No support No support 9.0 (Yes) 9 (Yes)
now() on regular context   25.0 15.0 (15.0) 1.0 (15.0) 10.0 (Yes) 9 20.0 webkit
25.0
now() in Web workers. No support (Yes) 34.0 (34.0) ? ? ? ? (Yes)
toJSON() No support No support 25.0 (25.0) 1.2 (25.0) 10.0 No support ? No support
getEntries(), getEntriesByType(), getEntriesByName() No support (Yes) 25.0 (25.0) 1.2 (25.0) 10.0 33 No support (Yes)
clearResourceTimings(), setResourceTimingBufferSize() No support (Yes) (Yes) (Yes) (Yes) 33 No support (Yes)
onresourcetimingbufferfull No support (Yes) (Yes) ? No support 33 No support (Yes)
mark(), clearMarks(), measure(), clearMeasure() No support 46.0 42 42 10 33 No support 46.0
clearFrameTimings(), setFrameTimingBufferSize(), and onframetimingbufferfull No support (Yes) ? ? ? ? ? (Yes)

[1] Member prefixed with webkit have been removed or deprecated.

Document Tags and Contributors

 Contributors to this page: jpmedley, AFBarstow, chrisdavidmills, Rob W, adria, fscholz, zanona, Bzbarsky, teoli
 Last updated by: jpmedley,