BT

Windows 10におけるMicrosoft JavaScriptエンジンの仕組み

| 作者: David Iffland フォローする 4 人のフォロワー , 翻訳者 尾崎 義尚 フォローする 0 人のフォロワー 投稿日 2014年10月28日. 推定読書時間: 2 分 |

原文(投稿日:2014/10/15)へのリンク

Internet Explorerチームは先日、Windows 10で変更されるJavaScriptエンジンの詳細を説明した。大きな変更はJust-in-Time (JIT)コンパイラーに新しい階層の追加である。

JavaScriptエンジンChakraは、 IE9で最初に導入され、Internet ExplorerだけでなくMicrosoftアプリストアからダウンロードできるWebベースのアプリでも使われている。Chakraはゆっくりだが柔軟な方法でインタープリターでJavaScriptを実行することで起動する。メソッドやループで「ホット」になると、Chakraは、最適化されたマシンコードを生成するためにJITコンパイラを使用する。

Windows 10でChakraには、遅いインタープリターコードと早い最適化されたコードの間を埋める2番目のJITコンパイラーが含まれている。これはフルJITよりも迅速なインタープリターに移動して実行することができる「十分によい」レイヤーとして、シンプルJITと呼ばれる中間層コンパイラーとして使用される。Microsoftによると、この変更により特定のワークロードにおいて"最大30%高速に実行する"ことができるという。

シンプルJITは複雑な最適化によるコード生成を回避し... ほとんどの場合、シンプルJITによるコードのコンパイル時間は、フルJITコンパイラーによる高度に最適化されるよりもはるかに短くて済む。

2段階JITへの移行は他のブラウザーで実施されたものを反映している。SpiderMonkeyは、FirefoxのJavaScriptエンジンであり、BaselineとIonMonkeyという2つのコンパイラーを持っている。 Baselineコンパイラーは、Firefox 23で最初に提供され、ChakraのシンプルJITコンパイラーと同じく中間ステップを提供している。Google ChromeのV8 JavaScriptエンジンは、2010年に2階層コンパイルシステムを発表したが、V8はインタープリターを使用していない。

JIT階層の追加以外にChakraは、多くのバックグラウンドスレッドで分割してコードをコンパイルすることができる。単一のバックグラウンドスレッドだけが使用されていると、

Chakraは、潜在的に活用されていないハードウェアで実行されている時、JITコンパイルするための複数の同時実行スレッドを生成する機能がある。

V8エンジンは、単一のバックグラウンドスレッドでコンパイルする。

Webの性質としてJavaScriptは前もってコンパイルすることができない。そのため、コンパイルはクライアント上で実行する必要がある。Firefoxの最初のバージョンに含まれていたJavaScriptネイティブコードコンパイラーはversion 3.1であり、Internet ExplorerはIE9でその機能を含めた。V8は、最初からJITコンパイラーを持っていた。

新しいInternet ExplorerはWindows 10 Technical Previewの一部として提供されている。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT