私は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 フォーク/コアが最適な数ではありませんか? ここで、4 フォークは 2 フォークより優れていないことがわかります。