Chakra(チャクラ)はマイクロソフトのウェブブラウザとWindowsランタイム上のアプリケーションで使用されるJavaScriptエンジンのコードネーム[1]である。
Internet ExplorerのHTMLレンダリングエンジンであるTridentがMicrosoft Edge用にEdgeHTMLとしてフォークされたのと同じく、Chakraもまたフォークされ、Internet Explorer用は従来通りJScript9.dll、Microsoft Edge用にChakra.dllと分離されている[2]。
歴史
JScript9.dll
Internet ExplorerのJavaScriptエンジンである。JavaScript互換エンジンであるJScriptに代わる新しいJavaScriptエンジンとしてInternet Explorer 9から搭載された[1]。
Internet Explorer開発終了に伴い、保守のみ行われている。
バージョン 9.0
Internet Explorer 9に含まれるバージョンである。32 ビット版Chakraと 64 ビット版Chakraでは機能差があり、64 ビット版にはJIT コンパイラが含まれておらず[3]、性能差がでた[3]。
競合相手であるWebKitの開発者が開発したベンチマーク スイートのSunSpider JavaScript Benchmarkを使用したパフォーマンス比較では、32 ビット版での比較でInternet Explorer 7のJScript 5.7では約50倍、Internet Explorer 8のJScript 5.8より約18倍の処理速度が向上した[4]。
- 機能強化点
-
- 処理の遅延化や回避、アイドル時間の活用、処理並列化
- 複数のCPUコアを利用した並列実行の対応や高速に処理可能なCPU命令の使用(SSE2など)
- インタプリタの改善
- インラインキャッシュの導入
- Internet ExplorerへJavaScriptエンジンの統合[5]
- COMを使用してのDOMバインド処理を廃止
- JavaScriptエンジン側のDOMとInternet Explorer側のDOMへ統合し単一DOM化
- デッドコード削除[6]
- ECMAScript 5の対応
バージョン 10.0
Internet Explorer 10に含まれるバージョンである。
Windows 8およびWindows RTと同じくWindowsの新しいAPIとして発表されたWindowsランタイム上に構築されるWindows ストアアプリのJavaScriptエンジンとしても使用されている[7]。
Chakra 9.0にはあった32ビット版と64ビット版の性能差はなくなり、ARMアーキテクチャも同等品質のものが発表された。
SunSpider JavaScript Benchmarkを使用したパフォーマンス比較では、Chakra 9.0より25%処理速度が向上した[8]。
- 機能強化点
-
バージョン 11.0
Internet Explorer 11に含まれるバージョンである。
SunSpider JavaScript Benchmarkを使用したパフォーマンス比較では、Chakra 10.0より9%処理速度が向上した[10]。
- 機能強化点
-
- 型指定された配列の強化
- コードのインストルメント化
- JavaScript拡張機能
- ブロック スコープ (let, const) の対応
- コンテナ オブジェクト (Set, Map, WeakMap) の対応
- __proto__プロパティの対応
- ECMAScript Internationalization APIの対応
Chakra.dll
Microsoft EdgeのJavaScriptエンジンである。Windows 10 Insider Previewにてアップデート プレビュー版が定期的に公開されており、Windows 10のアップデートで定期的にChakraのアップデートが行われている。
ECMAScript 6の仕様準拠や、WebRTC、asm.jsなどの対応が行われている。
ChakraCore
マイクロソフトがChakraをウェブブラウザなどから分離した純粋なJavaScriptエンジンとしてGithubでChakraCoreという名前でオープンソース化した[11]。
脚注
|
---|
バージョン |
| |
---|
概要 | |
---|
技術 | |
---|
ソフトウェア& エンジン | |
---|
実装 | |
---|
出来事 | |
---|
人物 | |
---|
|