1'use strict'; 2 3const nodeTiming = require('internal/perf/nodetiming'); 4 5const { now } = require('internal/perf/utils'); 6 7function eventLoopUtilization(util1, util2) { 8 const ls = nodeTiming.loopStart; 9 10 if (ls <= 0) { 11 return { idle: 0, active: 0, utilization: 0 }; 12 } 13 14 if (util2) { 15 const idle = util1.idle - util2.idle; 16 const active = util1.active - util2.active; 17 return { idle, active, utilization: active / (idle + active) }; 18 } 19 20 const idle = nodeTiming.idleTime; 21 const active = now() - ls - idle; 22 23 if (!util1) { 24 return { idle, active, utilization: active / (idle + active) }; 25 } 26 27 const idle_delta = idle - util1.idle; 28 const active_delta = active - util1.active; 29 const utilization = active_delta / (idle_delta + active_delta); 30 return { idle: idle_delta, active: active_delta, utilization }; 31} 32 33module.exports = eventLoopUtilization; 34