マルチコアに対応した
JavaScriptエンジン Chakra
IE9のJavaScriptエンジンには、新しく開発されたJavaScript JIT(Just In Time)コンパイラー「Chakra」が使われている。IE8までのJavaScriptエンジンでは、サーバーから受け取ったJavaScriptのコードをすべて受信してから、CPU上で動くネイティブコードに変換して実行していた。しかし、ネイティブコードを実行するCPUをシングルコアと仮定していため、マルチコアCPUでもひとつのCPUコアしか使用しない状況だった。
また、JavaScriptコードの中にウェブページの表示処理が入っていると、途中で表示をしてから続くJavaScriptコードを実行していた。そのためJavaScript処理の性能が向上しにくかった。
そこでChakraでは、JavaScriptコードをすべて受信してから変換するのではなく、必要な部分を順次バックグラウンドで変換する方式に切り替えた。これにより、JavaScriptコード内にある表示に関わる部分をフォアグランドで動作させながら、それ以外のJavaScriptコードをバックグラウンドで処理できるようになった。さらにChakraをマルチコア対応にして、複数のスレッドで並列実行できるようにした。
これらの改良により、IE8に比べると約18倍もの性能向上を果たしているという。
競合に対する最大の強みは
HTML5のGPUアクセラレーション
冒頭でも述べたように、IE9では新世代ウェブの標準規格となっているHTML5とCSS3をサポートしている。HTML5は2012年に正式版となる最終勧告がリリースされる予定だが、2011年の5月末には最終勧告のRC版がリリースされる。CSSはウェブページのデザインを記述する言語であるが、CSS3にアップデートされることで、描画された図形をスクリプトで変形させるような機能も提供されている。
IE9だけでなく、多くのウェブブラウザーがHTML5対応を進めているが、細かい部分のサポートに関しては差がある。いずれにしても2012年の最終勧告までには、ほとんどのウェブブラウザーがHTML5をサポートすることになるだろう。
IE9ではHTML5の中でも、ビデオ/オーディオタグ、SVG(ベクターグラフィックス)、Canvas(図形を描画)、ジオロケーション(経度緯度を取得するAPI)などをサポートしている。IE9が競合する新世代ウェブブラウザーより進んでいるのが、これらのうちグラフィック表示に関わる機能に、GPUアクセラレーションを利用して性能を向上していることだ。
例えば、H.264フォーマットのHDビデオをIE9で再生する場合も、GPUアクセラレーションを利用してコマ落ちせずに再生可能だ。HTML5を使った図形の表示などは、CPU処理だけでは非常に重い処理になる。そこでIE9ではこの描画処理をGPUに任せることで、SVGやCanvasを使ったアニメーション表示もスムーズだ。
IE9向けの特設サイト「Beauty of the Web」では、HTML5を使ったウェブサイトが多数紹介されている。例えば面白法人カヤックが制作した「SVG女子」は、IE9のGPUアクセラレーションの威力がわかるコンテンツの一例だ。IE9をインストールしたら、ぜひ一度チェックしていただきたい。
そのほかにも、IE9のGPUアクセラレーションは「ClearType」を使ったフォントのスムージングにも使われる。これにより、CPU負荷を高めずにウェブページの文字表示を綺麗にできる。
なお4月12日には早くも、IE9の後継となる「Internet Explorer 10 Platform Preview 1」がリリースされている。IE10では、IE9で積み残されたHTML5の規格(WebSocket、IndexDBなど)がサポートされる予定だ。