Node.js TypeScript 获取系统 CPU 详细信息并计算 60 秒利用率
要获取系统的 CPU 详细信息并计算 60 秒内的利用率,你可以使用 'os' 模块和 'perf_hooks' 模块来完成。
首先,安装 '@types/node' 库,使得 TypeScript 可以正确地推断和使用 'os' 和 'perf_hooks' 模块。
npm install @types/node
然后,可以使用以下代码来获取系统的 CPU 详细信息并计算 60 秒内的利用率:
import os from 'os';
import { PerformanceObserver, performance } from 'perf_hooks';
// 获取系统的 CPU 信息
const cpuInfo = os.cpus();
const numCores = cpuInfo.length;
// 创建性能观察者
const obs = new PerformanceObserver((list) => {
const entries = list.getEntries();
const totalTime = entries.reduce((total, entry) => total + entry.duration, 0);
const cpuUsage = totalTime / (60 * 1000 * numCores) * 100; // 利用率百分比
console.log(`CPU 使用率: ${cpuUsage.toFixed(2)}%`);
});
obs.observe({ entryTypes: ['node'] });
// 开始性能测量
performance.mark('start');
// 模拟 CPU 密集型操作
for (let i = 0; i < 1000000000; i++) {
// 一些计算操作
}
// 结束性能测量
performance.mark('end');
performance.measure('duration', 'start', 'end');
在上面的代码中,我们首先使用 os.cpus() 方法获取系统的 CPU 信息,并获取 CPU 核心数。然后,我们创建一个性能观察者,用于观察性能测量的结果。接下来,我们使用 performance.mark() 方法标记性能测量的开始和结束位置,并使用 performance.measure() 方法计算测量的时间间隔。最后,我们根据测量的时间间隔和 CPU 核心数计算 CPU 利用率,并将结果输出到控制台。
注意,上述代码中的 CPU 使用率是通过模拟 CPU 密集型操作来计算的。你可以根据实际需求替换为你自己的 CPU 密集型操作。
原文地址: https://www.cveoy.top/t/topic/bEaR 著作权归作者所有。请勿转载和采集!