![]() |
|---|
| Internet Explorer 9 Platform Previewの画面 |
2010年3月に、米国で開催されたマイクロソフトの開発者向けカンファレンス「MIX10」では、新世代ブラウザー「Internet Explorer 9」(IE9)のプラットフォームプレビュー版(IE9 Platform Preview)が公開された。今回はこれを使用して、IE9の強化点である「GPUによるアクセラレーション」について検証してみたい。
マイクロソフトが現在の「Internet Explorer 8」(IE8)をリリースしたのは、2009年3月末。IE8はそれ以前のInternet Explorerとは異なり、ウェブ標準技術への対応とパフォーマンス向上を目指して開発されていた。しかし、DOMやJavaScriptなどの互換性テスト「Acid3」などを見ると、ウェブ標準に対してのサポート度合いはまだ低かった。
![]() | 「IE9 Platform Preview」は、Acid3テストの互換性が「55%」までしかない。マイクロソフトは正式リリース前までに、IE9を100%互換にすると明言している |
|---|
さらに、多くのウェブサイトがJavaScriptを使用するようになり、あまりJavaScriptのチューニングが進んでいなかったIE8は、FirefoxやSafari、Google Chromeといった競合ブラウザーと比較すると遅かった。
![]() | IE9 Platform Previewでは、JavaScriptのベンチマーク「SunSpider」でIE8の7倍高速化。競合ブラウザーと同レベルに達している |
|---|
GPUをフル活用してHTML5やビデオを高速化
![]() | IE9ではHTML5やSVG、CSS3などの規格をサポートする |
|---|
そこでIE9では、ウェブ標準準拠(DOM、CSS3の完全サポート)と大幅なJavaScriptなどのパフォーマンス向上を目標としている。さらに、今後のウェブ環境において重要になる「HTML5」やベクターグラフィックス規格「SVG1.1」などがサポートされる。
現在でもFirefoxやChromeなどのブラウザーは、一部HTML5やSVGなどをサポートしている。しかしIE9では、HTML5のグラフィック表示やビデオ表示、SVGなどに、WindowsのDirectXを利用することで、GPUのパワーで高速処理できる点が注目に値する。
例えばHTML5では、「Video」というタグが用意されている。これによりウェブサイトに直接ビデオを埋め込める。IE9ではHTML5に埋め込まれているVideoタグを識別して、CPUだけでなくGPUでビデオ再生を処理することで、CPUに負担をかけない。またこの処理には、Flashなどのプラグインを別途起動しなくてもいい。
![]() | HTML5のグラフィック関連機能は、GPUアクセラレーションがサポートされる |
|---|
ブラウザー上での文字表示には、「DirectWrite」が利用されている。DirectWriteはClearyType技術を使って、文字のエッジなどを滑らかに表示する。これにより、ブラウザー上の文字がよりきれいに表示できるようになる(関連記事)。
マルチコアCPUに対応したJavaScriptエンジン
![]() | IE9がネットワークからデータを受け取って、画面が表示されるまでのステップ。JavaScriptのコンパイルでマルチコアCPUを、レンダリングでGPUによる高速化を使っている |
|---|
IE8までのJavaScriptコードは、インタープリター式で処理されていた。しかしIE9からは、新しく開発されたJavaScript JIT(Just In Time)コンパイラー「Chakra」(開発コード名)を使用する。また、マルチコアCPUのパワーを活かしてバックグラウンドで処理することで、CPUコア全体に負荷を分散してブラウザーを動かす。
![]() | IE9のJITコンパイラー「Chakra」の仕組み。JavaScriptのコードをフォアグランドで読み込んで、一部のコードをバックグラウンドでコンパイル。作成されたネイティブコードはフォアグランドに戻して実行される |
|---|
JavaScriptをコンパイルして処理する方式では、受け取ったコードをコンパイラーでx86 CPUのネイティブコードに変換してから実行する。そのため、ウェブページを表示してから、コンパイルされたJavaScriptコードが動作するまでに、それなりの待ち時間が生じる。
そこで、IE9のChakraでは、すべてのJavaScriptコードを読み込んでからコンパイルするのではなく、順次バックグラウンドでコンパイルしていく。これにより、JavaScriptのコードが関係しないウェブページの表示をフォアグランドで行ないつつ、バックグラウンドで処理されたJavaScriptの結果を順次受け取れるようになった。
このようなやり方ならば、複雑なJavaScriptコードを含むウェブページでも、ブラウザーが何も表示しない待ち状態がなくなる。ユーザーが待ち時間でストレスを感じることも少なくなるだろう。
この連載の記事
- 第40回 最新版「PP7」に見るIE9の性能と互換性の高さ
- 第39回 独自の検証と改良でWindows 7の性能向上に挑むレノボ
- 第38回 新世代ブラウザー対決! IE9対Firefox 4対Chromium
- 第37回 GPUで変わるInternet Explorer 9のパフォーマンス
- 第36回 IE8の10倍速い!? IE9β版の新機能を体験してみた
- 第35回 ついに登場!Internet Explorer 9β版レビュー
- 第34回 64bit化される次期Windows Home Server Premium
- 第33回 Office Web AppsはOffice 2010の代わりになるのか?
- 第32回 機能は市販品以上!? Windows Live Photo Gallery
- 第31回 β版が公開されたWindows 7 SP1で何が変わる?
- この連載の一覧へ























