The measure() method creates a named timestamp in the browser's performance entry buffer between marks, the navigation start time, or the current time. When measuring between two marks, there is a start mark and end mark, respectively. The named timestamp is referred to as a measure.
The measure can be retrieved by one of the Performance interfaces: (getEntries(), getEntriesByName() or getEntriesByType()).
The measure's performance entry will have the following property values:
entryType- set to "measure".name- set to the "name" given when the measure was created.startTime- set to the start marktimestamp.duration- set to aDOMHighResTimeStampthat is the duration of the measure (typically, the end mark timestamp minus the start mark timestamp).
Note: This feature is available in Web Workers.
Syntax
performance.measure(name); performance.measure(name, startMark); performance.measure(name, startMark, endMark); performance.measure(name, undefined, endMark);
Arguments
- name
- A
DOMStringrepresenting the name of the measure. - startMark Optional
- A
DOMStringrepresenting the name of the measure's starting mark. May also be the name of aPerformanceTimingproperty. If it is omitted, then the start time will be the navigation start time. - endMark Optional
- A
DOMStringrepresenting the name of the measure's ending mark. May also be the name of aPerformanceTimingproperty. If it is omitted, then the current time is used.
Return value
- void
Example
The following example shows how measure() is used to create a new measure performance entry in the browser's performance entry buffer.
const markerNameA = "example-marker-a"
const markerNameB = "example-marker-b"
// Run some nested timeouts, and create a PerformanceMark for each.
performance.mark(markerNameA);
setTimeout(function() {
performance.mark(markerNameB);
setTimeout(function() {
// Create a variety of measurements.
performance.measure("measure a to b", markerNameA, markerNameB);
performance.measure("measure a to now", markerNameA);
performance.measure("measure from navigation start to b", undefined, markerNameB);
performance.measure("measure from the start of navigation to now");
// Pull out all of the measurements.
console.log(performance.getEntriesByType("measure"));
// Finally, clean up the entries.
performance.clearMarks();
performance.clearMeasures();
}, 1000);
}, 1000);
Specifications
| Specification | Status | Comment |
|---|---|---|
| User Timing Level 2 The definition of 'measure()' in that specification. |
Working Draft | Clarifies measure() processing model. |
| User Timing The definition of 'measure()' in that specification. |
Recommendation | Basic definition. |
Browser compatibility
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.
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
measure | Chrome
Full support
28
| Edge Full support 12 | Firefox Full support 41 | IE Full support 10 | Opera Full support 33 | Safari Full support 11 | WebView Android Full support 46 | Chrome Android
Full support
28
| Firefox Android Full support 42 | Opera Android Full support 33 | Safari iOS Full support 11 | Samsung Internet Android Full support 1.5 |
Legend
- Full support
- Full support
- Requires a vendor prefix or different name for use.
- Requires a vendor prefix or different name for use.
