Chakra(チャクラ)は、
マイクロソフトが開発した
JavaScriptエンジンであり、同社のウェブブラウザである
Internet ExplorerとMicrosoft Edge、そしてWindowsランタイム上のアプリケーションで利用されています。このエンジンは、WebサイトやWebアプリケーションのJavaScriptコードを実行する役割を担っており、そのパフォーマンスと機能は、Webブラウジング体験に大きな影響を与えます。
歴史
Chakraは、
Internet Explorerの
HTMLレンダリングエンジンである
Tridentが、Microsoft Edge用に
EdgeHTMLとしてフォークされたのと同様に、JScriptエンジンもフォークされました。
Internet Explorer向けには従来のJScript9.dllが、Microsoft Edge向けにはChakra.dllがそれぞれ用いられるようになりました。この分離は、両ブラウザの異なるニーズに対応し、それぞれのブラウザで最適化された
JavaScriptエンジンを利用できるようにするための措置でした。
JScript9.dll
Internet Explorerに搭載されていた
JavaScriptエンジンです。それまでのJScriptに代わる新しい
JavaScriptエンジンとして、
Internet Explorer 9から導入されました。JScript9.dllは、JavaScriptの実行速度を大幅に向上させ、Webアプリケーションのパフォーマンスを改善しました。しかし、
Internet Explorerの開発が終了したことに伴い、現在は保守のみが行われています。
バージョン 9.0
Internet Explorer 9に搭載されたバージョンです。このバージョンでは、32ビット版と64ビット版で機能差が存在し、64ビット版にはJITコンパイラが含まれていなかったため、性能に差が見られました。しかし、JavaScriptの実行速度は大幅に向上し、競合の
WebKit開発者が開発したベンチマークであるSunSpider JavaScript Benchmarkでは、
Internet Explorer 7のJScript 5.7と比較して約50倍、
Internet Explorer 8のJScript 5.8と比較して約18倍の処理速度を達成しました。
# 機能強化点
処理の遅延化や回避、アイドル時間の活用、処理並列化
複数の
CPUコアを利用した並列実行の対応や高速に処理可能な
CPU命令の使用(SSE2など)
インタプリタの改善
インラインキャッシュの導入
Internet ExplorerへJavaScriptエンジンの統合
COMを使用してのDOMバインド処理を廃止
JavaScriptエンジン側のDOMとInternet Explorer側のDOMへ統合し単一DOM化
デッドコード削除
ECMAScript 5の対応
バージョン 10.0
Internet Explorer 10に搭載されたバージョンです。Windows 8およびWindows RTで導入されたWindowsランタイム上に構築されるWindowsストアアプリのJavaScriptエンジンとしても利用されました。このバージョンでは、Chakra 9.0にあった32ビット版と64ビット版の性能差が解消され、ARMアーキテクチャでも同等品質のものが提供されました。SunSpider JavaScript Benchmarkでの比較では、Chakra 9.0よりも25%の処理速度向上が確認されました。
# 機能強化点
64ビット版に対応
ARMアーキテクチャに対応
ECMAScript 5.0 Strict Modeの対応
型指定された配列の強化
JITコンパイラの改善
ガベージコレクションの改善
浮動小数点演算の高速化
バージョン 11.0
Internet Explorer 11に搭載されたバージョンです。SunSpider JavaScript Benchmarkでの比較では、Chakra 10.0より9%の処理速度向上が確認されました。
# 機能強化点
型指定された配列の強化
コードのインストルメント化
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など、最新のWeb技術への対応が進められています。
ChakraCore
マイクロソフトは、ChakraをWebブラウザなどから分離させ、純粋な
JavaScriptエンジンとしてChakraCoreという名前でGitHub上でオープンソース化しました。これにより、開発者はChakraをさまざまな環境で利用したり、その開発に貢献したりできるようになりました。