Node perf_hooks.monitorEventLoopDelay function | API Reference | Bun
BuildDocsReferenceGuidesBlogDiscord/
node:perf_hooks/
monitorEventLoopDelayFmonitorEventLoopDelay
Search the reference...
/
BuildDocsReferenceGuidesBlogDiscord/
node:perf_hooks/
monitorEventLoopDelayFmonitorEventLoopDelay
function
perf_hooks.monitorEventLoopDelayfunction
monitorEventLoopDelay(options?:
EventLoopMonitorOptions):
IntervalHistogram;
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 typesinterface
EventLoopMonitorOptionsresolution?: number
The sampling rate in milliseconds. Must be greater than zero.
interface
IntervalHistogramreadonly
count: number
The number of samples recorded by the histogram.
readonly
countBigInt: bigint
The number of samples recorded by the histogram. v17.4.0, v16.14.0
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
max: number
The maximum recorded event loop delay.
readonly
maxBigInt: number
The maximum recorded event loop delay. v17.4.0, v16.14.0
readonly
mean: number
The mean of the recorded event loop delays.
readonly
min: number
The minimum recorded event loop delay.
readonly
minBigInt: bigint
The minimum recorded event loop delay. v17.4.0, v16.14.0
readonly
percentiles: Mapnumber, number>
Returns a Map object detailing the accumulated percentile distribution.
readonly
percentilesBigInt: Mapbigint, bigint>
Returns a Map object detailing the accumulated percentile distribution.
readonly
stddev: number
The standard deviation of the recorded event loop delays.
[Symbol.dispose](): void;
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.
}
disable(): boolean;
Disables the update interval timer. Returns true if the timer was stopped, false if it was already stopped.
enable(): boolean;
Enables the update interval timer. Returns true if the timer was started, false if it was already started.
percentile(percentile: number): number;
Returns the value at the given percentile.
@param percentile
A percentile value in the range (0, 100].
percentileBigInt(percentile: number): bigint;
Returns the value at the given percentile.
@param percentile
A percentile value in the range (0, 100].
reset(): void;
Resets the collected histogram data.
Resources
ReferenceDocsGuidesDiscordMerch StoreGitHubBlog Toolkit
RuntimePackage managerTest runnerBundlerPackage runnerProject
Bun 1.0Bun 1.1Bun 1.2Bun 1.3RoadmapContributingLicenseBaked with ❤️ in San Francisco
We're hiring →