为什么node.js运行时比Google Chrome控制台慢
我们知道Chrome和node.js在同一个V8 javascript引擎上运行。 我的理解:
- 铬应该是慢的,它不仅处理内部执行,但也做了额外的用户界面工作
- node.js应该很快, 没有额外的UI工作
所以,比较简单的速度testingnode.js的V8的JavaScript
与Chrome的V8
为什么node.js比Chrome慢?
顺便说一句,这是代码:
function speedTest(){ console.time("loop"); for (var i = 0; i < 1000000; i += 1){ // Do nothing } console.timeEnd("loop"); }
TL; DR绝对而言,并非如此。
首先,这些数字并不足以代表真正的performance差异。 是的,在这个试验中,它们可能相差25%,但在关注的情况下 ,这并不重要。
其次,V8并没有在Chrome中进行UI工作:合成,渲染和绘画是在 专门为此目的的 进程和线程上完成的 :
第三,在我的testing中,节点比浏览器更快,在0.5到1毫秒之间也是没有意义的。 更重要的是否定了这个问题的前提。
当心;
-
console.log定时器和javascript中的generals定时器不是很精确
-
节点V8上有更多的function,比如fs
-
我不认为用户界面与V8有关
我无法回答这个问题。 然而,其他的答案并没有说明问题。 有关NodeJS和浏览器如何显着不同的示例,请参阅http://www.jsbenchmarks.com/?anywhichway/lookup/master/benchmark.js/ 。 请注意,虽然浏览器结果显示该网站来自多个访问者,并且Node结果来自单个服务器,但在隔离环境中的testing显示的是同样的结果。