perf_hooks.monitorEventLoopDelay([options])
options<Object>resolution<number> 以毫秒为单位的采样率。必须大于零。默认值:10。
- 返回:<IntervalHistogram>
此属性是 Node.js 的扩展。在 Web 浏览器中不可用。
🌐 This property is an extension by Node.js. It is not available in Web browsers.
创建一个 IntervalHistogram 对象,用于随时间采样并报告事件循环延迟。延迟将以纳秒为单位报告。
🌐 Creates an IntervalHistogram object that samples and reports the event loop
delay over time. The delays will be reported in nanoseconds.
使用定时器检测事件循环的近似延迟之所以有效,是因为定时器的执行与 libuv 事件循环的生命周期紧密相关。也就是说,循环中的延迟会导致定时器执行的延迟,而这些延迟正是该 API 旨在检测的对象。
🌐 Using a timer to detect approximate event loop delay works because the execution of timers is tied specifically to the lifecycle of the libuv event loop. That is, a delay in the loop will cause a delay in the execution of the timer, and those delays are specifically what this API is intended to detect.
const { monitorEventLoopDelay } = require('node:perf_hooks');
const h = monitorEventLoopDelay({ resolution: 20 });
h.enable();
// Do something.
h.disable();
console.log(h.min);
console.log(h.max);
console.log(h.mean);
console.log(h.stddev);
console.log(h.percentiles);
console.log(h.percentile(50));
console.log(h.percentile(99));