7

The new JavaScript engine takes advantage of multiple CPU cores through Windows to interpret, compile, and run code in parallel.-http ://technet.microsoft.com/en-us/library/gg699435.aspx

The Chakra engine interprets, compiles, and executes code in parallel and takes advantage of multiple CPU cores, when available.-http ://msdn.microsoft.com/en-us/ie/ff468705.aspx

待って、なに?!?これは、IE9でマルチスレッドの並列JavaScriptコード実行(Webワーカー以外)があることを意味しますか?

これは悪いマーケティングの仕掛けだと思いますが、これについてもう少し情報が欲しいです。多分それらは異なるブラウザウィンドウ/タブ/プロセスが複数のCPUを利用できることを意味しますか?

4

1 に答える 1

3

結論は、主にコメントに基づいているため、コミュニティwikiの回答として提供されているため、この質問は実際の回答になります。

Microsoftは、(i)解釈および/または実行の個別のタスクを意味している可能性があります。(ii)コンパイルは並行して行われます。彼らはSunの古いHotSpotJVMのようなテクノロジーを適用しており、Javascript仮想マシンはコードを即座に解釈できるため、最初にコードを解釈している可能性があります。また、JITは、十分な頻度で使用されていると思われるコードをコンパイルして、利益を得ることができます。コンパイラの最適化のレベルが異なる場合でも、ゆっくりとダイヤルアップします。その場合、複数のコアを使用して、コードの1つのフラグメントを解釈または実行すると同時に、他の多くのフラグメントを任意にコンパイルするか、実行中の同じコードを再コンパイルしてより適切に最適化することができます。

ただし、技術レベルでは、静的分析を実行して、コールバックが状態に関して相互に独立している場合を判断し、トリガーイベントによってコールバックが並行して実行されるようにすることもできます。このようにして、Javascript仮想マシンは、言語の意味的にシリアルな性質に影響を与えることなく、実際にコードを並列に解釈/実行できます。このようなシステムは、スーパースカラーCPUの動作と論理的に似ていますが、削除がはるかに多く、複雑さが大幅に増しています。

于 2011-06-07T15:16:28.927 に答える