代码如下:
var cp = require('child_process');
for(var cpIndex =0;cpIndex < 5;cpIndex++){//生成一个进程池
var addUserCp = cp.fork(__dirname + '/addUser.js');
addUserCp.on("message",function(m){//子进程执行完了之后,通过message事件来接受子进程发过来的数据
var err = m.err;
var result = m.result;
var id = m.id;
var totalProcess = processNum[id].totalProcess;
if(++processNum[id].num === totalProcess){
var callback = callbackJson[id];
if(callback)callback(err,result);
delete callbackJson[id];
delete processNum[id];
}
})
addUserCpList.push(addUserCp);
}
问题:
为了批量导入用户,并用bcrypt来做hash生成用户密码,其速度如npm显示的: 我rounds取的8,大概每秒能做40个hash运算,速度还是很慢,于是就想到在主进程里用child_process开启多进程来同时计算,但是发现,多进程和我直接用eventproxy耗费的时间没什么变化。 想问问,child_process正确的方法该怎么用,才能真的提升nodejs的性能。