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).
Note: this interface is exposed to Window and Worker. It is extended by several interfaces including PerformanceMark, PerformanceMeasure, PerformanceFrameTiming, PerformanceNavigationTiming and PerformanceResourceTiming.
Properties
PerformanceEntry.nameRead only- A
DOMStringrepresenting the name of a performance entry when the metric was created. PerformanceEntry.entryTypeRead only- A
DOMStringrepresenting the type of performance metric such as "mark". SeeentryTypefor a list of valid values. PerformanceEntry.startTimeRead only- A
DOMHighResTimeStamprepresenting the starting time for the performance metric. PerformanceEntry.durationRead only- A
DOMHighResTimeStamprepresenting the time value of the duration of the performance event.
Methods
PerformanceEntry.toJSON()- A jsonizer that returns a JSON representation of the
PerformanceEntryobject.
Example
The following example checks all PerformanceEntry properties to see if the browser supports them or not and if the browser does support the property, the property's value is written 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] + " = NOT supported");
}
}
}
Specifications
| Specification | Status | Comment |
|---|---|---|
| Performance Timeline Time Level 2 The definition of 'PerformanceEntry' in that specification. |
Editor's Draft | Added toJSON() serializer method. |
| Performance Timeline The definition of 'PerformanceEntry' in that specification. |
Recommendation | Initial definition. |
Browser compatibility
| Feature | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
|---|---|---|---|---|---|---|
| Basic support. | 25.0 webkit 46.0 (unprefixed) |
(Yes) | (Yes) | (Yes) | (Yes) 33 (unprefixed) |
No support |
toJSON() method. |
(Yes) | ? | (Yes) | No support | No support | No support |
| Feature | Android | Android Webview | Edge | Firefox Mobile (Gecko) | Firefox OS | IE Phone | Opera Mobile | Safari Mobile | Chrome for Android |
|---|---|---|---|---|---|---|---|---|---|
| Basic support. | (Yes) | (Yes) webkit 46.0 (unprefixed) |
(Yes) | 25.0 (25.0) | 1.2 (25.0) | 10.0 | (Yes) 33 (unprefixed) |
No support | (Yes) webkit 46.0 (unprefixed) |
toJSON() method. |
(Yes) | ? | ? | 25.0 (25.0) | 1.2 (25.0) | No support | (Yes) | No support | ? |