このページの本文へ

前へ 1 2 3 4 次へ

あなたの知らないWindows 第25回

DirectXで進化したInternet Explorer 9を試してみた

2010年04月01日 12時00分更新

文● 山本雅史

  • この記事をはてなブックマークに追加
  • 本文印刷

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

「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の結果を順次受け取れるようになった。

水色のグラフはHTMLのParsingの処理。赤はJavaScriptの処理などを表している。JavaScriptコードが入ったサンプルをIE8(左)で表示すると、フォアグランドに処理が集まり、ページを表示しきるまで時間がかかる。同じサンプルをIE9(右)で表示すると、バックグランドでJavaScriptがコンパイルされ各CPUコアに処理が分散される。そのため、最終的にページを表示しきるまでの時間が短くなる

 このようなやり方ならば、複雑なJavaScriptコードを含むウェブページでも、ブラウザーが何も表示しない待ち状態がなくなる。ユーザーが待ち時間でストレスを感じることも少なくなるだろう。

前へ 1 2 3 4 次へ

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン