function
perf_hooks.monitorEventLoopDelay
This property is an extension by Node.js. It is not available in Web browsers.
Creates an IntervalHistogram object that samples and reports the event loop delay over time. The delays will be reported in nanoseconds.
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.
import { monitorEventLoopDelay } from '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));Referenced types
interface EventLoopMonitorOptions
interface IntervalHistogram
- readonly exceeds: number
The number of times the event loop delay exceeded the maximum 1 hour event loop delay threshold.
- readonly exceedsBigInt: bigint
The number of times the event loop delay exceeded the maximum 1 hour event loop delay threshold.
- readonly percentiles: Map<number, number>
Returns a
Mapobject detailing the accumulated percentile distribution. - readonly percentilesBigInt: Map<bigint, bigint>
Returns a
Mapobject detailing the accumulated percentile distribution. Disables the update interval timer when the histogram is disposed.
const { monitorEventLoopDelay } = require('node:perf_hooks'); { using hist = monitorEventLoopDelay({ resolution: 20 }); hist.enable(); // The histogram will be disabled when the block is exited. }Disables the update interval timer. Returns
trueif the timer was stopped,falseif it was already stopped.Enables the update interval timer. Returns
trueif the timer was started,falseif it was already started.- @param percentile
A percentile value in the range (0, 100].
- @param percentile
A percentile value in the range (0, 100].
Resets the collected histogram data.