为什么node.js运行时比Google Chrome控制台慢

我们知道Chrome和node.js在同一个V8 javascript引擎上运行。 我的理解:

  • 铬应该是慢的,它不仅处理内部执行,但也做了额外的用户界面工作
  • node.js应该很快, 没有额外的UI工作

所以,比较简单的速度testingnode.js的V8的JavaScript

对node.js进行速度测试

与Chrome的V8

Chrome上的速度测试

为什么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显示的是同样的结果。