forked from nodejs/node
-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathevent_loop_utilization.js
More file actions
33 lines (24 loc) · 876 Bytes
/
Copy pathevent_loop_utilization.js
File metadata and controls
33 lines (24 loc) · 876 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
'use strict';
const nodeTiming = require('internal/perf/nodetiming');
const { now } = require('internal/perf/utils');
function eventLoopUtilization(util1, util2) {
const ls = nodeTiming.loopStart;
if (ls <= 0) {
return { idle: 0, active: 0, utilization: 0 };
}
if (util2) {
const idle = util1.idle - util2.idle;
const active = util1.active - util2.active;
return { idle, active, utilization: active / (idle + active) };
}
const idle = nodeTiming.idleTime;
const active = now() - ls - idle;
if (!util1) {
return { idle, active, utilization: active / (idle + active) };
}
const idle_delta = idle - util1.idle;
const active_delta = active - util1.active;
const utilization = active_delta / (idle_delta + active_delta);
return { idle: idle_delta, active: active_delta, utilization };
}
module.exports = eventLoopUtilization;