我有 4 个内核并根据此示例运行此代码:
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 个叉子(上面的代码),我得到:
功能#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.897ms
功能#2:1686.123ms
我不明白这些结果。1 fork /core不是最佳数字吗?在这里,我看到 4 叉并不比 2 叉好。