オルタナティブ・ブログ > The Grouchy Bug >

米国東海岸発、とあるソフトウェア開発者のよもやま話

Internet Explorer 9のパフォーマンス: IE9、Google ChromeとFirefoxとの比較

»

ITmediaの記事: MicrosoftがIE9披露 新JavaScriptエンジン搭載でHTML5をサポート
ITmediaの記事: Internet Explorer 9はGPUで武装する

Internet Explorer 9 Platform Previewを試してみました

Internet Explorer 9 Platform Previewが一般に公開されたので、さっそく試してみました。インストールは非常に簡単、あっという間にインストールが終わり、IE7, IE8などの既存のブラウザをアンインストールすることなしに、IE9 Platform Previewをインストール、起動することができます。IE9 Platform Previewは、IE9のブラウザエンジンを試す目的で公開されているということで、ツールバーも、アドレスバーも、ブックマークもないシンプルなUIです。ホームページがIE9のデモページになっています。
Ie9

メニューのHelp - Aboutを選択すると、以下のバージョンが表示されます。

Helpaboutie9



イメージ表示のパフォーマンス

まずは、IE9ホームーページのSpeed DemosのFlying Images(http://ie.microsoft.com/testdrive/Performance/01FlyingImages/Default.html)を試してみました。 Flying Imagesのページは、JavaScriptを使って、Imageタグのスタイルを変えて、イメージをくるくる回転させるアニメーション効果を作りだします。特にSVGは使っていません。
Flyingimages

私のマシンは、AMD Athron 64 X2 Dual Core 5200+ 2.60GHz、Windows7をインストールしてあります。マシンは3年前くらい前に購入ししたものです。オンボードのNVIDIA GeForce 6150SE がついていて、スクリーンサイズは、1680 x 1050です。Winodws Experience Indexは、Processorが5.7, Memory (RAM)が5.5, Graphicsが3.4、Gaming Graphicsが3.3、基本スコアが3.3程度でした。

ということで、IE9 Platform Previewと、Firefox3.6、Google Chrome 4.1.249.1036 (41514) で、どのくらいパフォーマンスに差があるのか調べてみました。

Flying Imagesの結果は以下のようになりました。

  1. IE9 Platform Preview 16 fps
  2. Firefox3.6    16fps
  3. Chrome 4.1.249.1036 (41514)    3 fps

ということで、IE9 Platform Preview, Firefoxが同じくらいのパフォーマンスを出していました。Chromeは、かなり遅い結果となっています。


CPUの負荷

また、Flying ImagesをテストしたときのCPU使用率も見てみました。

IE9 Platform Previewで、Flying Imagesのページをロードしたとき、
iepreview.exe     40-50%
dwm.exe     30-40%
トータルだと、マシン全体で70-80%のCPU使用率でした。

Firefoxで、Flying Imagesのページをロードしたとき、
firefox.exe    50%
dwm.exe        5% 
トータルだと、マシン全体で55%程度のCPU使用率でした。

Chromeで、Flying Imagesのページをロードしたとき、
chrome.exe    50%
dwm.exe        0-2%
トータルだと、マシン全体で50-52%程度のCPU使用率でした。

IE9 Platform Perviewでは、CPUの負荷が大きいです。
IE9 Platform Previewでは、dwm.exe (Desktop Window Manager)に依存していることがわかります。


SVGのパフォーマンス

SVGはグラフィックを描画するためのXML言語の1つで、HTMLの中でもSVGのグラフィックを表示することができます。IE9 Platform Previewのフォーカスの1つにSVGのサポートがありました。SVGの性能の比較もおこなってみました。 比較のために2つのSVGファイル(tiger2.svgとtiger3.svg)を作成してみました。これらのSVGファイルは、JavaScriptでアニメーションを作り出します。

tiger2.svg をダウンロード
tiger3.svg をダウンロード

ベースの虎の絵のSVGファイルは、http://www.croczilla.com/bits_and_pieces/svg/samples/ ここのtiger.svgを使わせていただきました。tiger.svgでは、虎の絵はすべてSVGのPathでベクター画像として書かれています。 tiger2.svgでは、虎の絵の上で、3つの円をJavaScriptで動かして、最後には、パフォーマンスの結果として、FPS(フレーム レート、1秒に何フレーム描画できるか)を出力します。

Tiger2svg_2

tiger3.svgでは、JavaScriptで虎の絵を時計回りに2回転させます。最後には、パフォーマンスの結果として、FPSを出力します。
Tiger3svg

tiger2.svgの結果は以下のようになりました。、

  1. IE9 Platform Preview    63 fps
  2. Chrome    48 fps
  3. Firefox3.6    23 fps

tiger2.svgでは、IE9 Platform Previewが非常に高速でした。次に、Chrome、そしてその次にFirefoxでした。

ところが、tiger3.svgの結果は以下のようになりました。

  1. Chrome 35 fps
  2. Firefox3.6    16 fps
  3. IE9 Platform Preview  12 fps

ということで、IE9 Platform Previewが一番遅いという結果になりました。


なぜ他のブラウザはDirectXやOpenGLを使わなかったのか

Chromeは、Direct3DやOpenGLといったハードウェアアクセラレーションを使った技術を使っていません。ちょっと古い(2008年10月の記事)ですが、ChromeがDirectXやOpenGLを使わなかった理由がChromiumのブログに書かれています。

Graphics in Google Chrome

  1. Chromeは直接ウインドウをスクリーンに描画する構造ではなく、それぞれのイメージをメインブラウザプロセスに送り、メインブラウザプロセスがスクリーンに描画するという構造になっているので、DirectXやOpenGLを使ってもその恩恵が受けにくい。
  2. 全体のページをレンダリングするときに、グラフィック描画の占める割合は少ない。つまり3Dアクセラレーションはそれほど性能改善をもたらさない。

どうやらこれらがGoogleの考えらしいです。なるほど、上記のテスト結果を見ると、かならずしもハードウェアアクセラレーションを使ったIE8 Platform Previewが高速だとは言えない場合がありました。ハードウェアアクセラレーションによる描画に比べて、他の部分、例えば、DOMやCSSなどの処理などがヘビーというのもあるかもしれません。MSとGoogleそれぞれの考え方の違い、設計方針がおもしろいです。



Firefox3.7のnightlyのハードウェアアクセラレーションサポート

一方、FirefoxのnightlyビルドではすでにWindows版では、DirectWriteとDirect2Dを使って、ハードウェアアクセラレーションをサポートし始めました。こちらも期待したいところです。

Direct2D: Hardware Rendering a Browser


というわけで

IE6 Platform Previewはどの程度の性能が出ているか、3つのテスト(イメージの回転および、SVG)を試してみました。Flying Imagesの表示では、Firefox3.6と同じ程度の性能でした。tiger2.svgの表示では、IE6 Platform Previewが優れた性能を出していました。tiger3.svgでは、Google Chrome, Firefoxと比べて一番遅い結果となりました。どうやら、IE6 Platform Previewは得意分野と不得意分野があるようです。

ただし、上記の結果は、CPUの性能と、ディスプレイカードの性能によっても変わります。IE9 Platform Previewでのグラフィック表示はCPUを消費するので、もっと高性能なCPUを使うとより良い結果が得られるでしょう。私のマシンのグラフィックボードは、マシン付属のオンボードのものです。同様に、グラフィックボードもより良いものにすれば違った結果が得られるかもしれません。

ちゃんと評価するには、もっといろいろなケースでのベンチマークが必要です。そうすれば違った結果も出てくるかもしれません。ちなみに、SunSpider JavaScript Benchmarkを用いたJavaScriptのテスト結果としてはこのようになっているようです。

IE9はまだまだ、Platform Previewの初期の開発段階です。(例えば、今回のIE9 Platform Previewでは、Canvasは全くサポートされていませんでした) IEのチームによれば、今後は、8週間ごとのアップデートがあるようですから、今後どんどんパフォーマンスがアップしていく可能性が十分あります。IE9では、HTML5, CSS3, SVGサポートの予定です。今後を注目していきたいと思います。

Comment(2)