Performance - Web APIs | MDN

archived 27 Apr 2024 19:49:53 UTC

Performance

The Performance interface provides access to performance-related information for the current page.
An object of this type can be obtained by calling window.performance or self.performance in workers. Note that Performance entries 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. See self.performance for which APIs are available in window and worker contexts.
EventTarget Performance

#Instance properties

The Performance interface doesn't inherit any properties.
Performance.eventCounts Read only
An EventCounts map containing the number of events which have been dispatched per event type.
Performance.navigation Read only Deprecated
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.
Performance.timing Read only Deprecated
A legacy PerformanceTiming object containing latency-related performance information.
Performance.memory Read only Non-standard Deprecated
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.

#Instance 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.measureUserAgentSpecificMemory() Experimental
Estimates the memory usage of a web application including all its iframes and workers.
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()
Returns a JSON representation of 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.

#Specifications

Specification
High Resolution Time
# sec-performance
Performance Timeline
# extensions-to-the-performance-interface
Resource Timing
# sec-extensions-performance-interface
User Timing
# extensions-performance-interface

#Browser compatibility

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
Deno
Node.js
Performance
clearMarks
clearMeasures
clearResourceTimings
eventCounts
getEntries
getEntriesByName
getEntriesByType
mark
markOptions parameter
Returns PerformanceMark
measure
measureOptions parameter
Returns PerformanceMeasure
measureUserAgentSpecificMemory
Experimental
memory
DeprecatedNon-standard
navigation
Deprecated
now
resourcetimingbufferfull event
setResourceTimingBufferSize
timeOrigin
timing
Deprecated
toJSON

Legend

Tip: you can click/tap on a cell for more information.
Full supportFull support
Partial supportPartial support
No supportNo support
Experimental. Expect behavior to change in the future.
Non-standard. Check cross-browser support before using.
Deprecated. Not for use in new websites.
See implementation notes.
Uses a non-standard name.
Requires a vendor prefix or different name for use.
Has more compatibility info.
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%