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 (en-US) 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.


The Performance interface doesn't inherit any properties.

Deprecated Performance.navigation (en-US) Read only
A PerformanceNavigation (en-US) 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.
Deprecated Performance.timing Read only
A PerformanceTiming (en-US) object containing latency-related performance information. Not available in workers.
performance.memory (en-US) Non-Standard
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 (en-US) Read only Non-Standard
Returns the high resolution timestamp of the start time of the performance measurement.

Event handlers

Performance.onresourcetimingbufferfull (en-US)
An EventTarget which is a callback that will be called when the resourcetimingbufferfull event is fired.


The Performance interface doesn't inherit any methods.

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


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

Browser compatibility

BCD tables only load in the browser