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 } } ]
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 内核的信息。
例
在下面的示例中,我们尝试使用 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
{ 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 内核。我们可以在下图中看到这一点。
