performance.timerify(fn[, options])
fn
<Function>options
<Object>histogram
<RecordableHistogram> 使用perf_hooks.createHistogram()
创建的直方图对象,以纳秒为单位记录运行时间。
此属性是 Node.js 的扩展。 它在 Web 浏览器中不可用。
将函数封装在测量被封装函数运行时间的新函数中。
PerformanceObserver
必须订阅 'function'
事件类型才能访问时间细节。
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'] });
// 将创建性能时间轴条目
wrapped();
如果封装的函数返回 promise,则 finally 句柄将绑定到该 promise 上,并且一旦调用 finally 句柄就会报告持续时间。
fn
<Function>options
<Object>histogram
<RecordableHistogram> A histogram object created usingperf_hooks.createHistogram()
that will record runtime durations in nanoseconds.
This property is an extension by Node.js. It is not available in Web browsers.
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.
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();
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.