@ghini/kit
Version:
js practical tools to assist efficient development
32 lines (29 loc) • 955 B
JavaScript
import os from "os";
// 正确的实时CPU使用率计算方法
async function getCurrentCPUUsage() {
// 第一次采样
const startMeasure = os.cpus();
await new Promise((resolve) => setTimeout(resolve, 1000));
// 第二次采样
const endMeasure = os.cpus();
let idleDifference = 0;
let totalDifference = 0;
for (let i = 0; i < startMeasure.length; i++) {
const startTimes = startMeasure[i].times;
const endTimes = endMeasure[i].times;
// 计算空闲时间差
idleDifference += endTimes.idle - startTimes.idle;
// 计算总时间差
totalDifference +=
endTimes.user -
startTimes.user +
(endTimes.nice - startTimes.nice) +
(endTimes.sys - startTimes.sys) +
(endTimes.idle - startTimes.idle) +
(endTimes.irq - startTimes.irq);
}
// 计算CPU使用率
return 100 - (idleDifference / totalDifference) * 100;
}
const usage = await getCurrentCPUUsage();
console.log(usage);