PerformanceEntry

The PerformanceEntry object encapsulates a single performance metric that is part of the performance timeline. A performance entry can be directly created by making a performance mark or measure (for example by calling the mark() method) at an explicit point in an application. Performance entries are also created in indirect ways such as loading a resource (such as an image).

PerformanceEntry instances will always be one of the following subtypes:

Note: This feature is available in Web Workers.

Properties

PerformanceEntry.name Read only
A value that further specifies the value returned by the PerformanceEntry.entryType property. The value of both depends on the subtype. See property page for valid values.
PerformanceEntry.entryType Read only
A DOMString representing the type of performance metric such as, for example, "mark". See property page for valid values.
PerformanceEntry.startTime Read only
A DOMHighResTimeStamp representing the starting time for the performance metric.
PerformanceEntry.duration Read only
A DOMHighResTimeStamp representing the time value of the duration of the performance event.

Methods

PerformanceEntry.toJSON()
Returns a JSON representation of the PerformanceEntry object.

Example

The following example checks all PerformanceEntry properties to see if the browser supports them and if so, write their values to the console.

function print_PerformanceEntries() {
  // Use getEntries() to get a list of all performance entries
  var p = performance.getEntries();
  for (var i=0; i < p.length; i++) {
    console.log("PerformanceEntry[" + i + "]");
    print_PerformanceEntry(p[i]);
  }
}
function print_PerformanceEntry(perfEntry) {
  var properties = ["name",
                    "entryType",
                    "startTime",
                    "duration"];

  for (var i=0; i < properties.length; i++) {
    // Check each property
    var supported = properties[i] in perfEntry;
    if (supported) {
      var value = perfEntry[properties[i]];
      console.log("... " + properties[i] + " = " + value);
    } else {
      console.log("... " + properties[i] + " is NOT supported");
    }
  }
}

Specifications

Specification Status Comment
Resource Timing Level 3 Editor's Draft  
Resource Timing Level 2 Working Draft  
Resource Timing Level 1 Candidate Recommendation Adds the PerformanceResourceTiming interface and the resource value for entryType.
Navigation Timing Level 2 Working Draft  
Navigation Timing Recommendation Adds the PerformanceNavigationTiming interface and the navigation value for entryType.
User Timing Level 2 Working Draft  
User Timing Recommendation Adds the PerformanceMark and PerformanceMeasure interfaces as well as the mark and measure values for entryType.
Frame Timing Draft Adds the PerformanceFrameTiming interface and the frame value for entryType.
Performance Timeline Level 2
The definition of 'PerformanceEntry' in that specification.
Candidate Recommendation Added toJSON() serializer method.
Performance Timeline
The definition of 'PerformanceEntry' in that specification.
Recommendation Initial definition.

Browser compatibility

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidiOS SafariSamsung Internet
Basic supportChrome Full support 46
Full support 46
Full support 25
Edge Full support YesFirefox Full support YesIE Full support YesOpera Full support 33Safari Full support 11WebView Android Full support 46
Full support 46
Full support Yes
Prefixed
Prefixed Requires the vendor prefix: webkit
Chrome Android Full support 46
Full support 46
Full support 25
Prefixed
Prefixed Requires the vendor prefix: webkit
Edge Mobile Full support YesFirefox Android Full support 25Opera Android Full support 33Safari iOS Full support 11Samsung Internet Android ?
Available in workersChrome Full support 62Edge ? Firefox Full support 60IE ? Opera Full support 49Safari ? WebView Android Full support 62Chrome Android Full support 62Edge Mobile ? Firefox Android Full support 60Opera Android Full support 49Safari iOS ? Samsung Internet Android ?
durationChrome Full support YesEdge Full support YesFirefox Full support YesIE Full support YesOpera Full support YesSafari Full support 11WebView Android Full support YesChrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support 25Opera Android Full support YesSafari iOS Full support 11Samsung Internet Android ?
entryTypeChrome Full support YesEdge Full support YesFirefox Full support YesIE Full support YesOpera Full support YesSafari Full support 11WebView Android Full support YesChrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support 25Opera Android Full support YesSafari iOS Full support 11Samsung Internet Android ?
nameChrome Full support YesEdge Full support YesFirefox Full support YesIE Full support YesOpera Full support YesSafari Full support 11WebView Android Full support YesChrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support 25Opera Android Full support YesSafari iOS Full support 11Samsung Internet Android ?
startTimeChrome Full support YesEdge Full support YesFirefox Full support YesIE Full support YesOpera Full support YesSafari Full support 11WebView Android Full support YesChrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support 25Opera Android Full support YesSafari iOS Full support 11Samsung Internet Android ?
toJSONChrome Full support YesEdge ? Firefox Full support YesIE No support NoOpera Full support YesSafari Full support 11WebView Android Full support YesChrome Android Full support YesEdge Mobile ? Firefox Android Full support 25Opera Android Full support YesSafari iOS Full support 11Samsung Internet Android ?

Legend

Full support  
Full support
No support  
No support
Compatibility unknown  
Compatibility unknown
Requires a vendor prefix or different name for use.
Requires a vendor prefix or different name for use.

Document Tags and Contributors

Last updated by: fscholz,