【问题标题】:Node.js - Get number of processors availableNode.js - 获取可用的处理器数量
【发布时间】:2014-09-25 22:13:55
【问题描述】:

这真的只是为了满足好奇心,看看有没有更好的办法。

在我的 Windows 8 机器上,Node 的 process.env 对象具有 NUMBER_OF_PROCESSORS 属性,而在我的 Linux 机器上则没有。

显然不同的平台有不同的环境变量,这是给定的,但无论如何,NUMBER_OF_PROCESSORS 似乎都是有用的。

我对 Linux 的快速修复是生成一个子进程来运行 nproc 命令,但我想避免使用回调来简单地获取处理器数量。看来必须有更简单的方法。

其他人做了什么来解决这个问题?

【问题讨论】:

    标签: linux node.js


    【解决方案1】:

    它内置在节点中并称为os.cpus()

    返回一个对象数组,其中包含有关已安装的每个 CPU/内核的信息:型号、速度(以 MHz 为单位)和时间(一个对象包含 CPU/内核花费的毫秒数:user、nice、sys、idle、和中断)。

    这个数组的长度是系统中“处理器”的数量。大多数系统只有一个 CPU,所以这就是那个 CPU 的核心数。

    请看下面的代码:

    const os = require('os')
    const cpuCount = os.cpus().length
    

    【讨论】:

    • 此列表还包括虚拟内核。由于超线程技术,Intel i7 将显示 4 个物理内核中的 8 个逻辑内核。
    • 这是系统中的cpu数量;不是nproc 返回的数字 available
    【解决方案2】:
    var os = require('os'),
    cpuCount = os.cpus().length;
    

    【讨论】:

    • 为什么这个答案比 2 年前的相同答案有更多的赞成票?... 并且第一个答案有两个反对票,而这个没有。我很困惑。
    • 我猜是因为它有示例代码,使其更易于复制和粘贴。
    【解决方案3】:

    在您的 CLI 中,您可以运行以下日志记录机器上的内核数。

    node -e 'console.log(require("os").cpus().length)'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-26
      • 1970-01-01
      • 1970-01-01
      • 2013-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-31
      相关资源
      最近更新 更多