问题来源:因为webpack每次打包的时候打包的时间都有点出入,有时候两次打包时间差的还挺多的,所以我想通过node的多进程去同时打包相同webpack配置的项目,取一个平均值。(我想做一个关于不同webpack配置,比较优化性能)
-
问题一: node.js 一次能开多少进程
- 查看相关资料得到一个结论:node能开的进程数取决于cpu的核数,所以我得出的结论是理论上node 一次只能开4个进程(cpu 4核情况下)
- 但是我通过一个for 循环去执行
require('child_process').fork('./child.js')
,当我循环10次的时候得到了pid不同的10个进程, 如下:
// index.js
const childProcess = require('child_process');
for (let i = 0; i < 10; ++i) {
childProcess.fork('./child.js');
}
// child.js
console.log('Worker-' + process.pid + ': Hello world.')
// output
Worker-91432: Hello world.
Worker-91433: Hello world.
Worker-91434: Hello world.
Worker-91437: Hello world.
Worker-91435: Hello world.
Worker-91441: Hello world.
Worker-91436: Hello world.
Worker-91439: Hello world.
Worker-91440: Hello world.
Worker-91438: Hello world.
- 问题2:为什么同样的配置,每次webpack 打包的时间相差的都比较多,有时候能甚至差20几秒
求教 ?