はてなブックマークでの活動すらできないくらいに忙しく、ブログの更新をしないでいるうちに、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 TestとBitmap 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になってどう変わったのか……。データは収集済みだが、まとめるのにもう少し時間がかかりそうだ。しばしお待ちを。