我使用cluster
模块的基本设置是:(我有6个核心)
var cluster = require('cluster');
if (cluster.isMaster) {
var numCPUs = require('os').cpus().length;
for (var i = 0; i < numCPUs; i++) {
cluster.fork();
}
}else{
//Code here
console.time("Time: ");
var obj = {'abcdef' : 1, 'qqq' : 13, '19' : [1, 2, 3, 4]};
for(var i = 0; i < 500000; i++) {
JSON.parse(JSON.stringify(obj));
}
console.timeEnd("Time: ");
}
如果我要进行那项测试。 它将输出:
但是......如果我在cluster.isMaster
块内运行相同的精确测试,它将输出:
1)为什么我的代码被执行多次而不是一次?
2)由于我有6 cpu cores
帮助我进行测试,不应该只运行一次该代码但是更快地执行操作吗?
答案 0 :(得分:1)
os.cpus().length
单独的进程。因此,如果os.cpus().length === 6
,那么您应该看到6个单独的输出(您发布的输出就是这种情况)。