2016-10-06 16 views
1

Chromeとnode.jsが同じV8 javascriptエンジンで動作することはわかっています。私の理解:クロム遅くする必要がありますnode.jsの実行時間がGoogle Chromeより遅い理由コンソール

  • 、それは内部の実行を扱うだけでなく、余分なUIの作業を行うだけでなく、
  • のNode.jsは高速である必要があり、それは余分なUIの仕事
何を持っていません

ので、Node.jsののV8 JavaScriptの

Speed test on node.js

のための簡単なスピードテストを比較しました。 ChromeのV8

Speed test on Chrome

Node.jsのクロムよりもとても遅いのはなぜ?

ところで、ここのコードです:

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

ループコードを質問に貼り付けてREPLに貼り付けることができますか? – msanford

+3

私は2つの間でパフォーマンスに意味のある違いは見られません –

+1

1msは何でもかまいません。これは良いテストではありません。あなたの番号に少なくとも5つの「0」を追加してください。 – Brad

答えて

9

TLは、DR絶対的には、そうではありません。

まず、実際のパフォーマンスの違いを表すには、これらの数値は「十分に異なる」ものではありません。はい、この試行では、彼らは25%で異なる可能性がありますが、の文脈でが重要ではありません。 V8は、ChromeのUIの仕事をしていません

第二には、:合成、レンダリングや絵がdedicated to that purposeあるdone on processes and threads次のとおりです。

enter image description here

第三に、ノードは、その時の私のテストのブラウザよりも高速です0.5〜1msも無意味である。さらに重要なことは、は、質問の前提を否定します。

+0

[ここでの最後の質問] ://www.toptal.com/nodejs/interview-questions)は言っていますか?それは逆ですが、私はその違いを見つけることができました – xameeramir

+0

@studentコンソールログをラップするコードブロックが関数ではないことに気付くように設計されたJSスコープルールに関するトリック質問のように見えます(私は思いますか?なぜ私は候補者にこの質問を正直であると頼んでほしいのか分かります)。また、あなたの例で行ったことでもありません:関数内でカプセル化しました。 – msanford

+1

私はあなたが正しいと信じています。 – xameeramir

5

注意してください。

  • にconsole.logタイマーおよびJavaScriptで将軍タイマーでは、私は考えていないFS

  • のようなノードV8のより多くの機能が、ある かなり正確な

  • ではありませんUIにV8と関係があることを確認してください。

-2

私は質問に答えられません。しかし、他の答えは、この問題についてはあまり明るくない。 NodeJSとブラウザの劇的な違いの例については、http://www.jsbenchmarks.com/?anywhichway/lookup/master/benchmark.js/を参照してください。ブラウザの結果はこのサイトが複数の訪問者から来たものの、ノードの結果は単一のサーバーからのものであることに注意してください。

関連する問題