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

时间:2016-10-06 20:10:51

标签: javascript node.js performance google-chrome v8

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

  • Chrome应该很慢,它不仅可以处理内部执行,还可以执行额外的UI工作
  • node.js应该很快,没有额外的UI工作

所以,比较node.js的V8 javascript

的简单速度测试

Speed test on node.js

使用Chrome的V8

Speed test on Chrome

为什么node.js比Chrome慢?

顺便说一句,这是代码:

function speedTest(){
    console.time("loop");
    for (var i = 0; i < 1000000; i += 1){
        // Do nothing
    }
    console.timeEnd("loop");
}

3 个答案:

答案 0 :(得分:9)

TL; DR从绝对意义上讲,它不是。

首先,这些数字不足以表示真正的性能差异。是的,在这个试验中,它们可能相差25%,但在关注的背景下,它并不重要。

其次,V8没有在Chrome中执行UI工作:合成,渲染和绘画是done on processes and threads dedicated to that purpose

enter image description here

第三,节点比我的测试中的浏览器更快,在0.5到1毫秒也没有意义。更重要的是,它否定了问题的前提。

答案 1 :(得分:5)

要小心;

  • console.log计时器和javascript中的常规计时器不是 非常精确

  • 节点V8上有更多功能,如fs

  • 我不认为用户界面与V8有关

答案 2 :(得分:-2)

我无法回答这个问题;然而,其他答案并没有对此事有所了解。有关NodeJS和浏览器如何显着不同的示例,请参阅http://www.jsbenchmarks.com/?anywhichway/lookup/master/benchmark.js/。请注意,虽然浏览器结果是这个站点来自多个访问者而节点结果来自单个服务器,但在隔离环境中的测试显示相同的事情。