Performance

The Performance interface provides access to performance-related information for the current page. It's part of the High Resolution Time API, but is enhanced by the Performance Timeline API, the Navigation Timing API, the User Timing API, and the Resource Timing API.

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. 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
A legacy PerformanceNavigation object that provides useful context about the operations included in the times listed in timing, including whether the page was a load or a refresh, how many redirections occurred, and so forth. Not available in workers.
Performance.timing Read only
A legacy PerformanceTiming object containing latency-related performance information. Not available in workers.
Performance.memory Read only
A non-standard extension added in Chrome, this property provides an object with basic memory usage information. You should not use this non-standard API.
Performance.timeOrigin Read only
Returns the high resolution timestamp of the start time of the performance measurement.

Methods

The Performance interface doesn't inherit any methods.

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 number of milliseconds elapsed since a reference instant.
Performance.setResourceTimingBufferSize()
Sets the browser's resource timing buffer size to the specified number of "resource" type performance entry objects.
Performance.toJSON()
Is a jsonizer returning a json object representing the Performance object.

Events

Listen to these events using addEventListener() or by assigning an event listener to the oneventname property of this interface.

resourcetimingbufferfull
Fired when the browser's resource timing buffer is full.
Also available via the onresourcetimingbufferfull property.

Specifications

Specification Status Comment
High Resolution Time Level 2
The definition of 'Performance' in that specification.
Recommendation Defines toJson() method.
High Resolution Time
The definition of 'Performance' in that specification.
Recommendation Defines now() method.
Performance Timeline Level 2
The definition of 'Performance extensions' in that specification.
Candidate Recommendation Changes getEntries() interface.
Performance Timeline
The definition of 'Performance extensions' in that specification.
Recommendation Defines getEntries(), getEntriesByType() and getEntriesByName() methods.
Resource Timing Level 1
The definition of 'Performance extensions' in that specification.
Candidate Recommendation Defines clearResourceTimings() and setResourceTimingBufferSize() methods and the onresourcetimingbufferfull property.
User Timing Level 2
The definition of 'Performance extensions' in that specification.
Working 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.

Browser compatibility

DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
PerformanceChrome Full support 6Edge Full support 12Firefox Full support 7IE Full support 9Opera Full support 15Safari Full support 8WebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 7Opera Android Full support 14Safari iOS Full support 9Samsung Internet Android Full support 1.0
clearMarksChrome Full support 29
Full support 29
No support 25 — 29
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Edge Full support 12Firefox Full support 41IE Full support 10Opera Full support 33Safari Full support 11WebView Android Full support ≤37
Full support ≤37
No support ≤37 — ≤37
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Chrome Android Full support 29
Full support 29
No support 25 — 29
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Firefox Android Full support 42Opera Android Full support 33Safari iOS Full support 11Samsung Internet Android Full support 2.0
Full support 2.0
No support 1.5 — 2.0
Prefixed
Prefixed Implemented with the vendor prefix: webkit
clearMeasuresChrome Full support 29
Full support 29
No support 25 — 29
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Edge Full support 12Firefox Full support 41IE Full support 10Opera Full support 33Safari Full support 11WebView Android Full support YesChrome Android Full support 29
Full support 29
No support 25 — 29
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Firefox Android Full support 42Opera Android Full support 33Safari iOS Full support 11Samsung Internet Android Full support 2.0
Full support 2.0
No support 1.5 — 2.0
Prefixed
Prefixed Implemented with the vendor prefix: webkit
clearResourceTimingsChrome Full support 46
Full support 46
No support 22 — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Edge Full support 12Firefox Full support YesIE Full support YesOpera Full support YesSafari Full support 11WebView Android Full support 46
Full support 46
No support ? — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Chrome Android Full support 46
Full support 46
No support 25 — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Firefox Android Full support YesOpera Android Full support YesSafari iOS Full support 11Samsung Internet Android Full support 5.0
Full support 5.0
No support 1.5 — 7.0
Prefixed
Prefixed Implemented with the vendor prefix: webkit
getEntriesChrome Full support 28
Full support 28
No support 25 — 36
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Edge Full support 12Firefox Full support YesIE Full support YesOpera No support NoSafari Full support 11WebView Android Full support YesChrome Android Full support 28
Full support 28
No support 25 — 36
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Firefox Android Full support 25Opera Android No support NoSafari iOS Full support 11Samsung Internet Android Full support 1.5
Full support 1.5
No support 1.5 — 3.0
Prefixed
Prefixed Implemented with the vendor prefix: webkit
getEntriesByNameChrome Full support 28
Full support 28
No support 25 — 36
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Edge Full support 12Firefox Full support YesIE Full support YesOpera No support NoSafari Full support 11WebView Android Full support YesChrome Android Full support 28
Full support 28
No support 25 — 36
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Firefox Android Full support 25Opera Android No support NoSafari iOS Full support 11Samsung Internet Android Full support 1.5
Full support 1.5
No support 1.5 — 3.0
Prefixed
Prefixed Implemented with the vendor prefix: webkit
getEntriesByTypeChrome Full support 28
Full support 28
No support 25 — 36
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Edge Full support 12Firefox Full support YesIE Full support YesOpera Full support 15
Full support 15
No support 15 — 23
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Safari Full support 11WebView Android Full support YesChrome Android Full support 28
Full support 28
No support 25 — 36
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Firefox Android Full support 25Opera Android Full support 15
Full support 15
No support 14 — 24
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Safari iOS Full support 11Samsung Internet Android Full support 1.5
Full support 1.5
No support 1.5 — 3.0
Prefixed
Prefixed Implemented with the vendor prefix: webkit
markChrome Full support 28
Full support 28
No support 25 — 28
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Edge Full support 12Firefox Full support 41IE Full support 10Opera Full support 33Safari Full support 11WebView Android Full support YesChrome Android Full support 28
Full support 28
No support 25 — 28
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Firefox Android Full support 42Opera Android Full support 33Safari iOS Full support 11Samsung Internet Android Full support 1.5
measureChrome Full support 28
Full support 28
No support 25 — 28
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Edge Full support 12Firefox Full support 41IE Full support 10Opera Full support 33Safari Full support 11WebView Android Full support 46Chrome Android Full support 28
Full support 28
No support 25 — 28
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Firefox Android Full support 42Opera Android Full support 33Safari iOS Full support 11Samsung Internet Android Full support 1.5
memory
Non-standard
Chrome Full support 7Edge Full support ≤79Firefox No support NoIE ? Opera Full support YesSafari No support NoWebView Android Full support YesChrome Android Full support 18Firefox Android No support NoOpera Android Full support YesSafari iOS No support NoSamsung Internet Android Full support 1.0
navigation
Deprecated
Chrome Full support 10Edge Full support 12Firefox Full support 7IE Full support 9Opera Full support 15Safari Full support 8WebView Android Full support YesChrome Android Full support 18Firefox Android Full support 7Opera Android No support NoSafari iOS Full support 9Samsung Internet Android Full support 1.0
nowChrome Full support 24
Full support 24
No support 21 — 24
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Edge Full support 12Firefox Full support 15
Notes
Full support 15
Notes
Notes In Firefox 57.0.4 the accuracy was reduced to 20 microseconds.
Notes In Firefox 59 the accuracy was reduced to 2 milliseconds.
Notes In Firefox 60 the accuracy was increased to 1 millisecond.
IE Full support 10Opera Full support 15Safari Full support 8WebView Android Full support YesChrome Android Full support 25Firefox Android Full support 15
Notes
Full support 15
Notes
Notes In Firefox 57.0.4 the accuracy was reduced to 20 microseconds.
Notes In Firefox 59 the accuracy was reduced to 2 milliseconds.
Notes In Firefox 60 the accuracy was increased to 1 millisecond.
Opera Android Full support 14Safari iOS Full support 9Samsung Internet Android Full support 1.5
onresourcetimingbufferfullChrome Full support 46
Full support 46
No support 22 — 57
Alternate Name
Alternate Name Uses the non-standard name: onwebkitresourcetimingbufferfull
Edge Full support ≤79Firefox Full support YesIE No support NoOpera No support NoSafari Full support 11WebView Android Full support 46
Full support 46
No support ? — 57
Alternate Name
Alternate Name Uses the non-standard name: onwebkitresourcetimingbufferfull
Chrome Android Full support 46
Full support 46
No support 25 — 57
Alternate Name
Alternate Name Uses the non-standard name: onwebkitresourcetimingbufferfull
Firefox Android Full support YesOpera Android Full support YesSafari iOS No support NoSamsung Internet Android Full support 5.0
Full support 5.0
No support 1.5 — 7.0
Alternate Name
Alternate Name Uses the non-standard name: onwebkitresourcetimingbufferfull
resourcetimingbufferfull eventChrome Full support 46
Full support 46
No support 22 — 57
Alternate Name
Alternate Name Uses the non-standard name: webkitresourcetimingbufferfull
Edge Full support ≤79Firefox Full support YesIE No support NoOpera No support NoSafari Full support 11WebView Android Full support 46
Full support 46
No support ? — 57
Alternate Name
Alternate Name Uses the non-standard name: webkitresourcetimingbufferfull
Chrome Android Full support 46
Full support 46
No support 25 — 57
Alternate Name
Alternate Name Uses the non-standard name: webkitresourcetimingbufferfull
Firefox Android Full support YesOpera Android Full support YesSafari iOS No support NoSamsung Internet Android Full support 5.0
Full support 5.0
No support 1.5 — 7.0
Alternate Name
Alternate Name Uses the non-standard name: webkitresourcetimingbufferfull
setResourceTimingBufferSizeChrome Full support 46
Full support 46
No support 22 — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Edge Full support 12Firefox Full support YesIE Full support YesOpera Full support YesSafari Full support 11WebView Android Full support 46
Full support 46
No support ? — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Chrome Android Full support 46
Full support 46
No support 25 — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Firefox Android Full support YesOpera Android Full support YesSafari iOS No support NoSamsung Internet Android Full support 5.0
Full support 5.0
No support 1.5 — 7.0
Prefixed
Prefixed Implemented with the vendor prefix: webkit
timeOrigin
Experimental
Chrome Full support 62Edge Full support 16Firefox Full support 53IE ? Opera Full support 49Safari No support NoWebView Android Full support 62Chrome Android Full support 62Firefox Android Full support 53Opera Android Full support 46Safari iOS No support NoSamsung Internet Android Full support 8.0
timing
Deprecated
Chrome Full support 6Edge Full support 12Firefox Full support 7IE Full support 9Opera Full support 15Safari Full support 8WebView Android Full support YesChrome Android Full support 18Firefox Android Full support 7Opera Android Full support 14Safari iOS Full support 9Samsung Internet Android Full support 1.0
toJSONChrome Full support 56Edge Full support 12Firefox Full support 25IE ? Opera No support NoSafari No support NoWebView Android Full support 56Chrome Android Full support 56Firefox Android Full support 25Opera Android No support NoSafari iOS No support NoSamsung Internet Android Full support 6.0

Legend

Full support
Full support
No support
No support
Compatibility unknown
Compatibility unknown
Experimental. Expect behavior to change in the future.
Experimental. Expect behavior to change in the future.
Non-standard. Expect poor cross-browser support.
Non-standard. Expect poor cross-browser support.
Deprecated. Not for use in new websites.
Deprecated. Not for use in new websites.
See implementation notes.
See implementation notes.
Uses a non-standard name.
Uses a non-standard name.
Requires a vendor prefix or different name for use.
Requires a vendor prefix or different name for use.