2012-02-12 12 views
19

私の技術の理解は、それを組み立てるためにオンザフライでコンパイルされているということです。速度スペクトル上ではJavaよりも遅いが、RubyやPythonよりも速い。クライアント側ではインタプリタが意味を持ちますが、サーバー側では、実行前のコンパイル、または少なくともこれを行うオプションがあることが、最適なアーキテクチャです。 JavaScriptをこの方法であらかじめコンパイルしておけば、Javaより速く実行できますか?それとも、弱く型付けされた言語とは関係があります。つまり、JavaScriptはJavaよりも遅くなります。実行時にNode.jsがコンパイルされないのはなぜですか?

+0

これは、あなたの質問にお答えします:http://java.dzone.com/articles/what-javascript-equivalent – alfasin

+2

現代のJavaScriptインタプリタは、実際の通訳が、適応のコンパイラではありません。しかし、動的言語は通常、静的言語よりも(タイプチェックのために)実行するのが遅いため、おそらくJavaほど速くはありません。 –

+2

静的なタイピング(または気分が良い場合は「強いタイピング」)は、いくつかの言語にパフォーマンスの改善をもたらす要因の1つですが、それは唯一の要因とは限りません。私が言っていることは、特定のベンチマークのパフォーマンスを必ずしも高水準の技術選択肢に変換することはできないということです。たとえば、Grails(JVM)、Express(node.js)を定期的に使用しています。 Grailsが10秒未満で起動すると私は運が良いと思うが、同等の機能を提供するExpressはミリ秒単位で始まる。 –

答えて

21

Node.jsのいくつかはC++であり、あらかじめコンパイルされています。しかし、私の理解は、可能な限りJavascriptでそれを維持する努力があったが、パフォーマンスが悪い場合はC++が使用されたということです。

Node.jsはV8 JavaScript Engineなしでは使用できません。これはjavascriptをコンパイルするものです。このエンジンは非常に高速であることで有名です。 Chromeブラウザ用に作られたものですが、Node.jsでもパフォーマンスが向上します。

Node.jsのパフォーマンスに関して、Webサーバーとしては、とApache + PHPのような他の主要なWebサーバーと同等以上のです。したがって、パフォーマンスは一般的な使用例では問題になりません。つまり、より速い技術があります。 Erlangベースのサーバーは、並行負荷の方が高速であることが知られています(興味深いことに、Erlangは動的型付き言語です)。

cpu/gpuの集中的な処理では、Fabric Engineで温度を調整しないと、Node.jsは良い選択ではありません。この場合、C++と同じレベルになる可能性があります。 - http://www.dartlang.org/support/faq.html

  • ダート:

    は現在、JavaScriptでの速度の問題を検討しているプロジェクトがいくつかあります。 (スピードだけでなく、その一部です)。

  • ノード先住民 - https://github.com/d5/node.native/
関連する問題