14 lines
569 B
TypeScript
14 lines
569 B
TypeScript
import { monitorEventLoopDelay } from 'node:perf_hooks';
|
|
|
|
let started = false;
|
|
export function startPerformanceMonitor() {
|
|
if (started || process.env.EC_PERF_LOG !== 'true') return;
|
|
started = true;
|
|
const delay = monitorEventLoopDelay({ resolution: 20 }); delay.enable();
|
|
setInterval(() => {
|
|
console.info('[performance]', { eventLoopP95Ms: Math.round(delay.percentile(95) / 1e6),
|
|
eventLoopMaxMs: Math.round(delay.max / 1e6), rssMiB: Math.round(process.memoryUsage().rss / 1048576) });
|
|
delay.reset();
|
|
}, 60_000).unref();
|
|
}
|