这只是为了满足好奇心,看看是否有更好的方法来做到这一点。
在我的Windows 8框中,Node的process.env
对象具有NUMBER_OF_PROCESSORS
属性,在我的Linux机器上它没有。
显然,不同的平台有不同的环境变量,这是给定的,但似乎NUMBER_OF_PROCESSORS会是一个有用的东西。
我对Linux的快速修复是生成一个子进程来运行nproc
命令,但是我想避免使用回调来简单地获取处理器数量。似乎必须有一个更简单的方法。
其他人为解决这个问题做了什么?
答案 0 :(得分:68)
var os = require('os'),
cpuCount = os.cpus().length;
答案 1 :(得分:67)
它内置于节点中并调用os.cpus()
返回一个对象数组,其中包含有关安装的每个CPU /核心的信息:模型,速度(以MHz为单位)和时间(包含CPU /核心所用的毫秒数的对象:user,nice,sys,idle,和irq)。
此数组的长度是系统中“处理器”的数量。大多数系统只有一个CPU,因此这是该CPU的核心数。
答案 2 :(得分:2)
在您的CLI中,您可以在计算机上运行以下内核核心数。
node -e 'console.log(require("os").cpus().length)'