UNPKG

next

Version:

The React Framework

34 lines (33 loc) 1.05 kB
import { PerformanceObserver } from 'perf_hooks'; import { warn } from '../../build/output/log'; import { bold } from '../picocolors'; const LONG_RUNNING_GC_THRESHOLD_MS = 15; const gcEvents = []; const obs = new PerformanceObserver((list)=>{ const entry = list.getEntries()[0]; gcEvents.push(entry); if (entry.duration > LONG_RUNNING_GC_THRESHOLD_MS) { warn(bold(`Long running GC detected: ${entry.duration.toFixed(2)}ms`)); } }); /** * Starts recording garbage collection events in the process and warn on long * running GCs. To disable, call `stopObservingGc`. */ export function startObservingGc() { obs.observe({ entryTypes: [ 'gc' ] }); } export function stopObservingGc() { obs.disconnect(); } /** * Returns all recorded garbage collection events. This function will only * return information from when `startObservingGc` was enabled and before * `stopObservingGc` was called. */ export function getGcEvents() { return gcEvents; } //# sourceMappingURL=gc-observer.js.map