Chakra

Chakra
開発元 マイクロソフト
プラットフォーム
Chakra
ChakraCore
種別 JavaScriptエンジン
ライセンス プロプライエタリ(プライベート バインディング), MIT License (ChakraCore)
テンプレートを表示

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

Internet ExplorerHTMLレンダリングエンジンであるTridentMicrosoft 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]

機能強化点
  • 64ビット版に対応[9]
  • ARMアーキテクチャに対応[9]
  • ECMAScript 5.0 Strict Modeの対応
  • 型指定された配列の強化
  • JITコンパイラの改善
  • ガベージコレクションの改善
  • 浮動小数点演算の高速化

バージョン 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]

脚注

  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. ^ Microsoft、「Edge」のJavaScriptエンジン「Chakra」をオープンソース化へ”. 2016年1月14日閲覧。