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 via WorkerGlobalScope.performance , 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.navigationRead only -
A legacy
PerformanceNavigationobject that provides useful context about the operations included in the times listed intiming, including whether the page was a load or a refresh, how many redirections occurred, and so forth.Note: Not available in workers.
-
Performance.timingRead only -
A legacy
PerformanceTimingobject containing latency-related performance information.Note: Not available in workers.
-
Performance.memoryRead 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.timeOriginRead 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 entrieswith aentryTypeof "resource" from the browser's performance data buffer. Performance.getEntries()-
Returns a list of
PerformanceEntryobjects based on the given filter. Performance.getEntriesByName()-
Returns a list of
PerformanceEntryobjects based on the given name and entry type. Performance.getEntriesByType()-
Returns a list of
PerformanceEntryobjects of the given entry type. Performance.mark()-
Creates a
timestampin the browser's performance entry buffer with the given name. Performance.measure()-
Creates a named
timestampin the browser's performance entry buffer between two specified marks (known as the start mark and end mark, respectively). Performance.now()-
Returns a
DOMHighResTimeStamprepresenting 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"typeperformance entryobjects. Performance.toJSON()-
Is a jsonizer returning a json object representing the
Performanceobject.
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
onresourcetimingbufferfullproperty.
Specifications
Browser compatibility
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | |
Performance |
6 |
12 |
7 |
9 |
15 |
8 |
≤37 |
18 |
7 |
14 |
9 |
1.0 |
clearMarks |
29
25-29
|
12 |
41 |
10 |
33 |
11 |
≤37 |
29
25-29
|
42 |
33 |
11 |
2.0
1.5-2.0
|
clearMeasures |
29
25-29
|
12 |
41 |
10 |
33 |
11 |
≤37 |
29
25-29
|
42 |
33 |
11 |
2.0
1.5-2.0
|
clearResourceTimings |
46
22-57
|
12 |
35 |
10 |
Yes |
11 |
46
≤37-57
|
46
25-57
|
35 |
Yes |
11 |
5.0
1.5-7.0
|
eventCounts |
85 |
85 |
No |
No |
71 |
No |
85 |
85 |
No |
60 |
No |
14.0 |
getEntries |
28
25-36
|
12 |
35 |
10 |
No |
11 |
≤37 |
28
25-36
|
35 |
No |
11 |
1.5
1.5-3.0
|
getEntriesByName |
28
25-36
|
12 |
35 |
10 |
No |
11 |
≤37 |
28
25-36
|
35 |
No |
11 |
1.5
1.5-3.0
|
getEntriesByType |
28
25-36
|
12 |
35 |
10 |
15
15-23
|
11 |
≤37 |
28
25-36
|
35 |
15
14-24
|
11 |
1.5
1.5-3.0
|
mark |
28
25-28
|
12 |
41 |
10 |
33 |
11 |
≤37 |
28
25-28
|
42 |
33 |
11 |
1.5 |
measure |
28
25-28
|
12 |
41 |
10 |
33 |
11 |
≤37 |
28
25-28
|
42 |
33 |
11 |
1.5 |
measureUserAgentSpecificMemory |
89 |
89 |
No |
No |
75 |
No |
89 |
89 |
No |
63 |
No |
No |
memory |
7 |
79 |
No |
No |
Yes |
No |
≤37 |
18 |
No |
Yes |
No |
1.0 |
navigation |
10 |
12 |
7 |
9 |
15 |
8 |
≤37 |
18 |
7 |
No |
9 |
1.0 |
now |
24
21-24
|
12 |
15
["In Firefox 57.0.4 the accuracy was reduced to 20 microseconds.", "In Firefox 59 the accuracy was reduced to 2 milliseconds.", "In Firefox 60 the accuracy was increased to 1 millisecond."]
|
10 |
15 |
8 |
≤37 |
25 |
15
["In Firefox 57.0.4 the accuracy was reduced to 20 microseconds.", "In Firefox 59 the accuracy was reduced to 2 milliseconds.", "In Firefox 60 the accuracy was increased to 1 millisecond."]
|
14 |
9 |
1.5 |
onresourcetimingbufferfull |
46
22-57
|
79 |
35 |
No |
No |
11 |
46
≤37-57
|
46
25-57
|
35 |
Yes |
No |
5.0
1.5-7.0
|
resourcetimingbufferfull_event |
46
22-57
|
79 |
Yes |
No |
No |
11 |
46
≤37-57
|
46
25-57
|
Yes |
Yes |
No |
5.0
1.5-7.0
|
setResourceTimingBufferSize |
46
22-57
|
12 |
35 |
10 |
Yes |
11 |
46
≤37-57
|
46
25-57
|
35 |
Yes |
No |
5.0
1.5-7.0
|
timeOrigin |
62 |
16 |
53 |
No |
49 |
preview |
62 |
62 |
53 |
46 |
No |
8.0 |
timing |
6 |
12 |
7 |
9 |
15 |
8 |
≤37 |
18 |
7 |
14 |
9 |
1.0 |
toJSON |
56 |
12 |
25 |
9 |
No |
14.1 |
56 |
56 |
25 |
No |
14.5 |
6.0 |
© 2005–2021 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Performance