Mozilla Flux

Mozilla関係の情報に特化したブログです。

Firefox 7を振り返る

はてなブックマークでの活動すらできないくらいに忙しく、ブログの更新をしないでいるうちに、Firefoxのバージョンが2つも上がってしまった。事前の予定どおりにリリースされ続けており、高速リリースサイクルは完全に定着したといえるだろう。

今回リリースされたのはFirefox 8だが、実は、1つ前のFirefox 7がリリースされた後、ベンチマークのデータだけはとってあった。せっかくなので、その結果を公開しておきたい。比較対象は、以下のとおりWindows 7 SP1(64bit版)上で動作する32bit版のFirefox 6.0.2とFirefox 7.0.1である。新規プロファイルを初期設定のまま利用し、アドオンはすべて無効化するが、プラグインはAdobe Flash Player 10.3(r183)だけを有効にした。なお、初期設定でハードウェア(HW)アクセラレーションが有効になっている。

  • Firefox 6:Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0.2) Gecko/20100101 Firefox/6.0.2
  • Firefox 7:Mozilla/5.0 (Windows NT 6.1; WOW64; rv:7.0.1) Gecko/20100101 Firefox/7.0.1

メモリ使用量

Firefox 7の目玉の1つがメモリ使用量の削減だ。Mozilla Japanのブログ記事でも真っ先にとり上げられているほどである。どれほど効果があるのか、簡単に測ってみた。具体的には、まず、以下のWebサイトをその記載順であらかじめブックマークしておき、この10サイトを「タブですべて開く」でいっせいに読み込む。読み込みが完了したら、各タブをクリックして、Webページを実際に画面に表示させる。1分間そのまま放置した後、about:memoryを呼びだしてExplicit Allocationsの値を見る。

次に、「他のタブをすべて閉じる」でYahoo! JAPAN以外のWebページはすべて閉じる。1分間そのまま放置した後、再びabout:memoryを呼びだしてExplicit Allocationsの値を見る。厳密な方法ではないが、大まかな傾向は掴めるだろう。実験の結果がこれだ。

Firefox 6 Firefox 7
10サイト表示 139.44MB 90.54MB
単サイト表示 54.18MB 46.83MB

思っていたよりもかなり効果があった。多数のタブを開いていると大きく差が出る上、メモリの解放もうまくいっている様子で、搭載メモリに制限のある環境で使用しているユーザーには間違いなく朗報だ。では、メモリが豊富にあれば関係ないかというとそうではなく、ちゃんと恩恵を受けられる。Firefoxを使用中、タスクマネージャーに表示されるメモリ使用量が1GB前後になると動作が緩慢になってくるが、今回メモリ使用量が削減されたことで、この「上限」に達する可能性が低下した。ヘビーユーザーにはありがたい機能なのだ。

ページの読み込み

ここからは従来のテストに戻る。WebWaitを用いて、指定したWebページを10秒間隔で5回読み込ませた。Yahoo!ニュースasahi.comを対象にしており、秒数が少ないほど高速だ。

Yahoo!ニュース

Firefox 6 Firefox 7
平均値 1.04秒 0.99秒
中央値 0.93秒 0.55秒

平均値、中央値ともにFirefox 7が勝った。Firefox 7の中央値が優れている理由は不明だが、テスト自体さほど厳密なものではないので、遅くなっていないことが確かめられれば充分だろう。

asahi.com

Firefox 6 Firefox 7
平均値 1.90秒 2.14秒
中央値 1.57秒 1.87秒

こちらは残念ながら平均値、中央値ともにFirefox 6よりも劣る結果になってしまった。network.http.max-connectionsの値がGoogle Chromeと同様に256へと引き上げられたことが影響しているのか。それとも、レンダリングや描画の得意・不得意が出たのだろうか。

(2011/11/12追記)
コメント欄でご指摘をいただいたが、network.http.max-connectionsの値はFirefox 6で既に引き上げられていた。

動的ページの処理

GUIMark 2から、Vector Charting TestBitmap Gaming Testに加えてText Column Testをピックアップ。

Vector Charting Test

Firefox 6 Firefox 7
fps 21.52 22.21

HWアクセラレーションが効いた状態で比べているのだが、測定誤差程度の違いしかみられない。

Bitmap Gaming Test

Firefox 6 Firefox 7
fps 58.92 58.81

こちらも同様で、バージョン間の差は測定誤差の範囲内だ。

Text Column Test

Firefox 6 Firefox 7
fps 54.68 55.46

微妙な結果だが、Firefox 7の方が高速とまではいえないように思う。

Canvasの描画

風と宇宙とプログラム「Canvasのベンチマークテストを作って速度を比較してみた」に掲載されていたCanvas Performance Benchmarkを用いて、Canvasの描画処理に関する性能を測定した。

Firefox 6 Firefox 7
Total Score 2.31 2.90

Direct2D Azure hits Firefox 7で紹介されているように、Firefox 7にはCanvasのHWアクセラレーションを強化する新機能が投入されており、その効果がベンチマークに表れた。上のGUIMark 2ではアクセラレーションが効いてしまうと同じような数字しか出なかったが、Canvasではもう一段加速しているのが見てとれる。

HTML5/JavaScript総合

4Gamer.net「『enchant.js』でゲームはどれくらい動くのか? HTML5でゲームベンチマークを取ってみよう」に掲載されていたシューティングゲームタイプのベンチマークを利用し、100秒間のフレームレートの合計値を測定した。なお、enchant.jsはHTML5/JavaScriptベースのスマートフォン用ゲームエンジンである。

Firefox 6 Firefox 7
Score 7206 7488

順当にFirefox 7がパフォーマンスを伸ばして勝利した。このベンチマークだけは、Firefox 4のリリース以降、常に数字が良くなっている。

JavaScript処理

代表的なJavaScriptベンチマークを利用して、初期設定の状態でのパフォーマンスを見ていく。

SunSpider

Chromium Blog「Updating JavaScript Benchmarks for Modern Browsers」で紹介されている、Google修正版のSunSpider 0.9.1 JavaScript Benchmarkを用いる。それぞれのテストを50回連続で行うようにしたものだ。処理の高速化に伴い、細部に触れることに意味がなくなっていると思われるので、今回から結果のみ掲載する。

Firefox 6 Firefox 7
Total 188.6ms +/- 2.1% 191.0ms +/- 3.3%

測定誤差なのか、わずかにFirefox 7のパフォーマンスが落ちているのか、判断に迷う。仮に落ちているのだとしても、Webアプリに影響するレベルではないだろう。

V8 Benchmark

次に、V8 Benchmark Suite - version 6のスコアをチェック。

Firefox 6 Firefox 7
Score 4787 4887

このベンチマークではFirefox 7が上回った。個別の項目ではRegExpの数値が目立って良くなっている。既にFirefox 6の時点でRegExp以外の全項目が改善されており、最近のMozillaはSunSpiderよりもV8 Benchmark Suiteを重視しているのかもしれない。

Dromaeo

Dromaeo: JavaScript Performance Testingは、Mozillaが提供する重量級ベンチマークであり、JavaScriptエンジンなどにかなりの負荷をかけてその性能を測定してくれる。以下にRecommended Testsの最終結果を掲載する。詳細は比較表からどうぞ。

Firefox 6 Firefox 7
Total 469.21runs/s ±1.69% 466.92runs/s ±1.69%

わずかずつだったとはいえ、Firefox 6までは上昇傾向にあったわけだが、Firefox 7がこの傾向を引き継げなかったのは残念だ。さまざまなケースに対応したJITコンパイラのチューニングはそれだけ難しいということだろう。

Kraken

Kraken JavaScript BenchmarkはMozillaが提供するベンチマーク。従来のものと比べ、現実のWebアプリを処理した際の性能を反映した結果になるという。

Firefox 6 Firefox 7
Total 4532.1ms +/- 0.7% 4588.3ms +/- 1.2%
ai 747.3ms +/- 1.0% 749.2ms +/- 0.6%
audio 1517.0ms +/- 2.6% 1558.7ms +/- 3.9%
imaging 1376.2ms +/- 0.4% 1382.0ms +/- 0.7%
json 165.5ms +/- 1.9% 168.8ms +/- 1.4%
stanford 726.1ms +/- 0.9% 729.6ms +/- 0.8%

Firefox 4がリリースされてから、毎回少しずつスコアが落ちているのはなぜなのか。騒ぐような話ではないものの、やはりひっかかる。

総合評価

Firefox 7は、メモリ使用量の低下が目に見える形で表れており、Canvasの処理性能が向上したほか、引き続きゲーム関連のベンチマークが好調だ。その他は横ばいだが、高速化とコンパクト化を両立した点は評価されるべきだろう。

このFirefox 7がFirefox 8になってどう変わったのか……。データは収集済みだが、まとめるのにもう少し時間がかかりそうだ。しばしお待ちを。