要求(' os')。cpus()。长度返回24 ....不能理解如何?

时间:2014-05-30 22:55:50

标签: node.js concurrent-programming

我有一个配置此配置的Windows桌面:Intel Xeon(R)CPU E5645 @ 2.40GHz(2个处理器)
具有24 GB RAM和64位操作系统

当我运行以下代码时。

var cpuCount = require('os').cpus().length;

它将cpuCount返回为24

有人可以解释一下究竟是什么意思吗?它是如何确定我只有2个处理器的24个CPU。

1 个答案:

答案 0 :(得分:4)

http://ark.intel.com/products/48768/Intel-Xeon-Processor-E5645-12M-Cache-2_40-GHz-5_86-GTs-Intel-QPI?q=Xeon%20e5645

高级技术部分。它表示您的CPU支持Hyper-Threading

来自维基百科:

  

对于物理上存在的每个处理器核心,操作系统寻址两个虚拟或逻辑核心......

因此,您有两个处理器,每个处理器有6个物理内核(但是12个逻辑或虚拟):

(2 x 6)x 2 = 24

另请查看node.js docs

  

os.cpus()

     

返回一个对象数组,其中包含有关安装的每个CPU /核心的信息:模型,速度(以MHz为单位)和时间(包含CPU /核心所用的毫秒数的对象:user,nice,sys,idle,和irq)。

这就是require('os').cpus()返回的数组包含24个元素的原因。