Node.js - os.cpus() 方法



Node.js os.cpus() 方法将返回一个对象数组,其中包含有关当前计算机的每个逻辑 CPU 内核的详细信息。

在每个条目中,都有几个属性。有一个名为 model 的属性,它是一个字符串,指示系统的 CPU 模型。另一个名为 speed 的属性是以兆赫兹为单位的数值属性。输出中的times属性是一个具有以下属性的对象 -

  • model − 此属性是一个字符串,指定当前CPU内核的型号。
  • speed − 此属性是一个数字,用于指定 CPU 内核的速度,单位为 MHz(兆赫兹)。
  • times − 包含以下属性的对象。
  • user − 此属性给出一个数字,该数字指定 CPU 在用户模式下花费的时间(以毫秒为单位)。
  • nice − 此属性给出一个数字,该数字指定 CPU 在 nice 模式下花费的时间(以毫秒为单位)。
  • sys − 此属性给出一个数字,该数字指定CPU在sys模式下花费的时间(以毫秒为单位)。
  • idle - 此属性给出一个数字,指定CPU在空闲模式下花费的时间(以毫秒为单位)。
  • irq − 此属性给出一个数字,该数字指定CPU在irq模式下花费的时间(以毫秒为单位)。

语法

以下是 Node.js os.cpus() 方法的语法 -


 os.cpus()

参数

此方法不接受任何参数。

返回值

此方法将返回一个对象数组,其中包含有关当前计算机的逻辑核心的数据。

注意 - 我们只能在 POSIX 中获取“nice”值。而在 Windows 操作系统中,每个处理器的“nice”值将始终为 0。

在以下示例中,我们尝试将Node.js os.cpus() 方法记录到控制台。


const os = require('os');
const {cpus} = os;
console.log(os.cpus());

输出

[ { model: 'AMD EPYC 7502P 32-Core Processor',
speed: 1500,
times:
{ user: 189226200,
nice: 0,
sys: 80776200,
idle: 8565692600,
irq: 0 } },
{ model: 'AMD EPYC 7502P 32-Core Processor',
speed: 1500,
times:
{ user: 224461400,
nice: 9000,
sys: 97874200,
idle: 8571598100,
irq: 0 } },
.
.
.
.
.
.
.
.
{ model: 'AMD EPYC 7502P 32-Core Processor',
speed: 1500,
times:
{ user: 114360400,
nice: 0,
sys: 80239500,
idle: 8711811800,
irq: 0 } },
{ model: 'AMD EPYC 7502P 32-Core Processor',
speed: 1500,
times:
{ user: 112385500,
nice: 0,
sys: 51727200,
idle: 8742557600,
irq: 0 } } ]

注意 - 为了获得准确的结果,最好在本地执行上述代码。

如果我们编译并运行上述程序,os.cpus() 将返回一个对象数组,其中包含有关每个逻辑 CPU 内核的信息。

os_cpus

在下面的示例中,我们尝试使用 foreach() 方法用数字标记每个逻辑 CPU 内核。然后,我们打印一条语句,其中包含当前计算机中的逻辑 CPU 内核总数。


const os = require('os');
const {cpus} = os;
let CPU = os.cpus();
let LogicalCores=0;
CPU.forEach(element => { LogicalCores++; 	 	
	 	console.log("Logical CPU core " + LogicalCores + " - "); 	 	
	 	console.log(element);	
}); 		
console.log("Total number of Logical CPU cores are: " + LogicalCores);

输出

Logical CPU core 1 -
{ model: 'AMD EPYC 7502P 32-Core Processor',
speed: 1500,
times:
{ user: 2242000, nice: 0, sys: 1316600, idle: 281004400, irq: 0 } }
Logical CPU core 2 -
{ model: 'AMD EPYC 7502P 32-Core Processor',
speed: 1500,
times:{ user: 5663000, nice: 0, sys: 1501800, idle: 278434700, irq: 0 } }
.
.
.
.
.
.
.
Logical CPU core 63 -
{ model: 'AMD EPYC 7502P 32-Core Processor',
speed: 1500,
times:
{ user: 2922500, nice: 0, sys: 1063400, idle: 281854900, irq: 0 } }
Logical CPU core 64 -
{ model: 'AMD EPYC 7502P 32-Core Processor',
speed: 1500,
times:
{ user: 596600, nice: 0, sys: 813400, idle: 284439400, irq: 0 } }
Total number of Logical CPU cores are: 64

注意 - 为了获得准确的结果,最好在本地执行上述代码。

如果我们编译并运行上述程序,我们将获得当前计算机的所有逻辑 CPU 内核。我们可以在下图中看到这一点。

logical_cpu_cores