web-dev-qa-db-ja.com

MicrosoftのChakraCoreは、Node.jsのJSエンジンとして使用した場合、GoogleのV8よりもパフォーマンス上のメリットがありますか?

[シナリオをNode.jsのみに絞り込むために質問を編集しました。もう一度開いてください。これは役立つ質問です。ChakraCoreがまだ非常に若いので、適切な回答がすぐに表示される可能性があります。 。しかし、この質問は有効であり、ここにあるはずです]

GoogleのV8エンジンのgloryと、それがnode.jsの美しさを長年にわたってどのように高めてきたかについては、誰もが知っている/読んだ/聞いたことがあります。

しかし、これでMicrosoftのChakraCoreGoogleのV8のどちらかを優先するJavaScriptエンジンとして選択できるようになりました誰かが証拠を持っているかどうか、またはテストしていますnodejsの場合、他のノードよりも効率的であることがわかった場合

チャクラを使用/選択するべきではないのは、マイクロソフトを愛している、またはV8とGoogleにも同じことが当てはまるからです。

ありがとう。

21
Suman Barick

どのように違うのですか?

最近のほとんどのJavaScriptエンジンはall JavaScriptコードを効率的なマシンコードに変換しますが( source )、Chakraはインテリジェントで高性能ですインタプリタ。このインタープリターには、コードをマシンコードにコンパイルするか、解釈するかを決定できるインテリジェントなヒューリスティックがあります。インタプリタは通常、起動が速く、実行に必要なメモリが少ないため、リソースに制約のある環境( Raspberry Pi など)でチャクラを非常に魅力的にします。

2015年、マイクロソフトはChakraでNode.jsのサポートを導入し、開発者が Windows IoT Core platform をターゲットにできるようにしました。最近のChakraCoreのオープンソーシングにより、Microsoftはオープンソースで開発し、Node.jsのリリーススケジュールに合わせることができました。

最近の JavaScript Airエピソード で、 Steve Lucco はチャクラチームが"コミュニティを真剣に受け止め、エンジンの方向性に関して真剣に意見を真剣に受けとめ、コミュニティに、たとえば、 V8 "

メモリ効率の高いJavaScriptエンジンを構築するために努力して、Microsoftは実際に競争力のあるものを構築しました。 this article が書かれた時点で、Chakra outperformed場合によってはV8です。


(ソース: msecnd.net

ベンチマークは必ずしも実際のパフォーマンスを示しているわけではありませんが、VMパフォーマンスでのこの競争は、最終的にすべてのVMのユーザーにとってより高速なNode.jsランタイムにつながります。

また、独自のJavaScriptエンジンを使用することで、Microsoftが自由に革新できることにも言及する価値があります。初期のイノベーションの1つは time-travel debugging です。

23
Alex Booker

違いは何ですか?

さて、質問は現在の形式では答えるには少し広すぎますが、私はそれに答えてみます。

GoogleのV8エンジンには、非常に高速なパフォーマンスを実現するために必要なすべての機能があります。したがって、基本的にこれはかなり長い間nodejsのベースであり、長期的には存在します。

一方、MicrosoftのChakraCoreも積極的に開発されており、2層構造(名前を付けることができませんit) withChakra ShimandChakraCore =
注目することチャクラシムimplements最も重要V8 API。これにより、基になるJavaScriptエンジンの変更が、Node.jsおよびV8用に作成された他のネイティブアドオンモジュールに対して透過的になります。

ソース:NodeJs-ChakraCore

OPの場合: webassembly も探します。

5
Jai