【发布时间】:2017-01-23 12:02:05
【问题描述】:
我有 4 个核心并根据this example 运行此代码:
var cluster = require('cluster');
var http = require('http');
var numCPUs = require('os').cpus().length;
var id = 0;
if (cluster.isWorker) {
id = cluster.worker.id;
}
var iterations = 1000000000;
console.time('Function #' + id);
for (var i = 0; i < iterations; i++) {
var test = 0;
}
console.timeEnd('Function #' + id);
if (cluster.isMaster) {
// Fork workers.
for (var i = 0; i < numCPUs; i++) {
cluster.fork();
}
}
有了 4 个 fork(上面的代码),我得到了:
函数#0:1698.801ms
函数#1:3282.679ms
函数#4:3290.384ms
函数#3:3425.090ms
函数 #2:3424.922ms
用 3 个叉子,我得到了:
函数#0:1695.155ms
函数#2:1822.867ms
函数#3:2444.156ms
函数#1:2606.680ms
用 2 个叉子,我得到了:
函数#0:1684.929ms
函数 #1:1682.897 毫秒
函数#2:1686.123ms
我不明白这些结果。 1 fork/core 不是 最佳 数字吗?在这里我看到 4 叉并不比 2 叉好。
【问题讨论】:
标签: javascript node.js multithreading node-cluster