Node.js 多进程处理CPU密集任务的实现(2)

function fibonacci(n) { if (n == 0 || n == 1) { return n; } else { return fibonacci(n - 1) + fibonacci(n - 2); } } // 接收主线程发送过来的任务,并开始查找斐波那契数 process.on("message", n => { var res = fibonacci(n); // 查找结束后通知主线程,以便主线程再度进行任务分配 process.send(res); }); 入口代码:cluster.js // 引入主线程js,并执行暴露出来的run方法 const master = require("./master"); master.run();

执行node cluster.js 查看结果

在我的电脑上显示结果为10724ms(电脑配置不同也会有差异)。

process: 500/500
👏 👏 👏 👏 👏 👏 👏 👏 👏 👏
任务完成,用时: 10724ms
👏 👏 👏 👏 👏 👏 👏 👏 👏 👏

结果

进过上面两种方式的对比,结果很明显,多进程处理速度是单线程处理速度的 4 倍多。而且有条件的情况下,如果电脑 CPU 足够,进程数更多,那么速度也会更快。

如果有更好的方案或别的语言能处理你的需求那就更好,谁让 Node.js 天生就不适合 CPU 密集型应用呢。。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/d62c87b7833682142fd046d2b4a8e273.html