performance.timerify(fn[, options])


版本历史
版本变更
v16.0.0

添加了直方图选项。

v16.0.0

重新实现以使用纯 JavaScript 和对异步函数计时的能力。

v8.5.0

新增于: v8.5.0

  • fn <Function>

  • options <Object>

    • histogram <RecordableHistogram> 使用 perf_hooks.createHistogram() 创建的直方图对象,以纳秒为单位记录运行时间。

      \histogram <RecordableHistogram> A histogram object created using perf_hooks.createHistogram() that will record runtime durations in nanoseconds.

此属性是 Node.js 的扩展。它在 Web 浏览器中不可用。

\This property is an extension by Node.js. It is not available in Web browsers.

将函数封装在测量被封装函数运行时间的新函数中。PerformanceObserver 必须订阅 'function' 事件类型才能访问时间细节。

\Wraps a function within a new function that measures the running time of the wrapped function. A PerformanceObserver must be subscribed to the 'function' event type in order for the timing details to be accessed.

import { performance, PerformanceObserver } from 'node:perf_hooks';
function someFunction() {
 console.log('hello world');
}
const wrapped = performance.timerify(someFunction);
const obs = new PerformanceObserver((list) => {
 console.log(list.getEntries()[0].duration);
 performance.clearMarks();
 performance.clearMeasures();
 obs.disconnect();
});
obs.observe({ entryTypes: ['function'] });
// A performance timeline entry will be created
wrapped();const {
 performance,
 PerformanceObserver,
} = require('node:perf_hooks');
function someFunction() {
 console.log('hello world');
}
const wrapped = performance.timerify(someFunction);
const obs = new PerformanceObserver((list) => {
 console.log(list.getEntries()[0].duration);
 performance.clearMarks();
 performance.clearMeasures();
 obs.disconnect();
});
obs.observe({ entryTypes: ['function'] });
// A performance timeline entry will be created
wrapped();

如果封装的函数返回 promise,则 finally 句柄将绑定到该 promise 上,并且一旦调用 finally 句柄就会报告持续时间。

\If the wrapped function returns a promise, a finally handler will be attached to the promise and the duration will be reported once the finally handler is invoked.

AltStyle によって変換されたページ (->オリジナル) /