Chakra

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索
Chakra
開発元 マイクロソフト
プラットフォーム Microsoft Windows
種別 JavaScript エンジン
ライセンス プロプライエタリ・ソフトウェア
テンプレートを表示

ChakraマイクロソフトウェブブラウザWindows Runtime 上のアプリケーションで使用される JavaScript エンジンのコードネーム[1]である。

Internet ExplorerHTML レンダリング エンジン である TridentMicrosoft Edge 用に EdgeHTML としてフォークされたのと同じく、Chakra もまたフォークされ、Internet Explorer 用は従来通り JScript9.dll、Microsoft Edge 用に Chakra.dll と分離されている[2]

歴史[編集]

バージョン 9.0[編集]

Chakra は Internet Explorer の JavaScript 互換エンジンである JScript に代わる新しい JavaScript エンジンとして Internet Explorer 9 から搭載された[1]。 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 Runtime 上に構築される 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 の対応

Windows 10 の開発途中の公開版の Windows Technical Preview 版では、Chakra にいくつかの機能強化が行われていることが発表され、UI 応答性とパフォーマンスがそれぞれ向上している。

Windows Technical Preview ビルド 9841 での強化[11]
  • マルチスレッド処理
  • Simple JIT - 新しい JIT コンパイラ層
  • 複数同時実行可能なバックグラウンド JIT スレッド
  • コード インライン化の強化
  • ECMAScript 5 の Getter と Setter のインライン化
  • 自動型列挙の最適化
  • ガベージコレクションの改善
Windows Technical Preview ビルド 9879 での強化[12]
  • ECMAScript 6 クラスの対応

脚注[編集]

[ヘルプ]
  1. ^ a b Shanku Niyogi (2010年3月19日). “The new JavaScript Engine in Internet Explorer 9” (英語). IEBlog. 2015年1月9日閲覧。
  2. ^ Targeting Edge vs. Legacy Engines in JsRT APIs” (英語). MSDN. 2015年6月13日閲覧。
  3. ^ a b EricLaw (2009年5月29日). “Q&A: 64-Bit Internet Explorer” (英語). IEInternals. 2015年1月9日閲覧。
  4. ^ 柳英俊 (2011年4月26日). ““速い”“安全”“美しい”満を持して登場した「Internet Explorer 9」”. Impress Watch. 2015年1月9日閲覧。
  5. ^ Dean Hachamovitch (2010年8月4日). “HTML5, Modernized: Fourth IE9 Platform Preview Available for Developers” (英語). IEBlog. 2015年1月9日閲覧。
  6. ^ Dean Hachamovitch (2010年11月17日). “HTML5, and Real World Site Performance: Seventh IE9 Platform Preview Available for Developers” (英語). IEBlog. 2015年1月9日閲覧。
  7. ^ Steven Sinofsky (2012年2月9日). “Building Windows for the ARM processor architecture” (英語). Building Windows 8. 2015年1月9日閲覧。
  8. ^ 阿久津良和 (2013年2月27日). “Windows 7/Windows Server 2008 R2に対応した「Internet Explorer 10」”. マイナビ. 2015年1月9日閲覧。
  9. ^ a b Andrew Miadowicz (2012年6月21日). “IE10 と Windows 8 における JavaScript のパフォーマンスの進歩”. IEBlog 日本語. 2015年1月9日閲覧。
  10. ^ Yoichi Yamashita (2013年11月8日). “Windows 7用「Internet Explorer 11」リリース、JavaScript実行が9%高速”. マイナビ. 2015年1月9日閲覧。
  11. ^ John-David Dalton; Gaurav Seth, Louis Lafreniere (2014年10月8日). “Announcing key advances to JavaScript performance in Windows 10 Technical Preview” (英語). IEBlog. 2015年1月9日閲覧。
  12. ^ Tom Care (2014年12月15日). “Classes in JavaScript: Exploring the Implementation in Chakra” (英語). IEBlog. 2015年1月9日閲覧。