CPU Usage via Nodejs

Node.js

在 Node.js 中,可以通过 os.cpus() 这个函数,来了解当前状态下,计算机 CPU 的一些状态。以 MacBookPro 2019 款为例,以下是一份输出的结果:

[
  {
    model: 'Intel(R) Core(TM) i7-8750H CPU @ 2.20GHz',
    speed: 2200,
    times: {
      user: 239572260,
      nice: 0,
      sys: 133555650,
      idle: 644681690,
      irq: 0,
    },
  },
  // 省略类似的其他十一个...
]

在这个返回的数组中,每一个元素代表一个 CPU 的线程。这台 MacBookPro 是六核(core)十二线程(processor),所以返回的数组长度是十二。具体来看每一个元素:

  • model,表示了当前 CPU 的型号
  • speed,表示 CPU 的运算速度,单位是 MHz
  • times 表示 CPU 的使用情况,分别记录了一些时间(单位是毫秒):

    • user 表示进程在用户模式(user mode)下使用的时间;
    • nice 表示被调整优先级(nice)的进程在用户模式下使用的时间。这里,nice 用于表示执行的优先级,从 -20(最高优先级)到 19(最低优先级)。默认的程序,优先级是 0;(注:这是一个 Unix 特有的功能,对于 Windows 用户来说,这个值永远是 0)
    • sys 表示进程在内核模式下使用的时间;
    • idle 表示空闲的时间;
    • irq 表示硬中断请求花费的时间。硬中断也叫外部中断,由外部硬件产生,如鼠标、键盘等。

有了以上的数据,就可以在 Node / Electron 程序中查看 CPU 的使用,从而对当前程序的执行情况有一个客观的了解。