Performance.measure()

{APIRef("User Timing API")}

 measure() 方法在浏览器性能输入缓存中创建了一个       {domxref("DOMHighResTimeStamp","timestamp")}来记录两个特殊标志位(通常称为开始标志和结束标志)。被命名的时间戳称为一次测量(measure)。

{AvailableInWorkers}

The measure 可以(domxref("Performance"))接口 getEntries*() 中的方法检索到。例:({domxref("Performance.getEntries","getEntries()")},{domxref("Performance.getEntriesByName","getEntriesByName()")} 或者 {domxref("Performance.getEntriesByType","getEntriesByType()")})。

The measure's {domxref("PerformanceEntry","performance entry")} 将具有以下属性值:

  • {domxref("PerformanceEntry.entryType","entryType")} - 设置 "measure"。
  • {domxref("PerformanceEntry.name","name")} - 设置  为度量创建时给出的名称。
  • {domxref("PerformanceEntry.startTime","startTime")} - 设置  开始标记 {domxref("DOMHighResTimeStamp","timestamp")}。
  • {domxref("PerformanceEntry.duration","duration")} -设置  一个measure的持续时间-{domxref("DOMHighResTimeStamp")}(通常是结束标记时间戳减去开始标记时间戳).

语法

performance.measure(name, startMark, endMark);

参数

name
一个 {domxref("DOMString")}, 代表测量的名字。
startMark {optional_inline}
一个 {domxref("DOMString")}, 代表测量的开始标志名字。 也可以是一个{domxref("PerformanceTiming")} 属性的名称。
endMark {optional_inline}
一个{domxref("DOMString")}, 代表测量的结束标志名字。 也可以是一个PerformanceTiming 属性的名称。

返回值

void
 

例子

以下例子展示如何在浏览器性能记录缓存中使用 measure()创建一个新的测量记录{domxref("PerformanceEntry","performance entry")} 。

// 以一个标志开始。
performance.mark("mySetTimeout-start");

// 等待一些时间。
setTimeout(function() {
  // 标志时间的结束。
  performance.mark("mySetTimeout-end");

  // 测量两个不同的标志。
  performance.measure(
    "mySetTimeout",
    "mySetTimeout-start",
    "mySetTimeout-end"
  );

  // 获取所有的测量输出。
  // 在这个例子中只有一个。
  var measures = performance.getEntriesByName("mySetTimeout");
  var measure = measures[0];
  console.log("setTimeout milliseconds:", measure.duration)

  // 清除存储的标志位
  performance.clearMarks();
  performance.clearMeasures();
}, 1000);

详细说明

详细说明 状态 注释
{SpecName('User Timing Level 2', '#dom-performance-measure', 'measure()')} {Spec2('User Timing Level 2')} 声明 measure() 处理模型
{SpecName('User Timing', '#dom-performance-measure', 'measure()')} {Spec2('User Timing')} 基本定义

浏览器兼容性

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
measureChrome Full support 28
Full support 28
No support 25 — 28
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Edge Full support 12Firefox Full support 41IE Full support 10Opera Full support 33Safari Full support 11WebView Android Full support 46Chrome Android Full support 28
Full support 28
No support 25 — 28
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Firefox Android Full support 42Opera Android Full support 33Safari iOS Full support 11Samsung Internet Android ?

Legend

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