Mozilla Flux

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

Firefox 8をベンチマークにかけてみる

ユーザー体験上の目玉になるはずだったタブのアニメーション機能が、アドオンの互換性を損なうとして直前で実装を見送られることになり、バージョンアップによる進化が少し見えにくくなってしまったFirefox 8。Mozilla Japanのブログ記事でも、Twitter検索の追加を最初にもってきている。しかし、考えてみるとGoogle Chromeが毎回目立った機能を追加し続けているのかといえば、そうでもないわけで。地味なメジャーバージョンアップは、高速リリースサイクルの宿命かもしれない。

さて、例によってベンチマークである。比較対象は、以下のとおりWindows 7 SP1(64bit版)上で動作する32bit版のFirefox 7.0.1とFirefox 8.0(Beta 6)。新規プロファイルを初期設定のまま利用し、アドオンはすべて無効化するが、プラグインはShockwave Flash 11.0(r1)だけを有効にした。なお、初期設定でハードウェア(HW)アクセラレーションが有効になっている。

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

メモリ使用量

前回に引き続き、Firefox 8のメモリ使用量を簡単に測ってみた。具体的には、まず、以下のWebサイトをその記載順であらかじめブックマークしておき、この10サイトを「タブですべて開く」でいっせいに読み込む。読み込みが完了したら、各タブをクリックして、Webページを実際に画面に表示させる。1分間そのまま放置した後、about:memoryを呼びだしてExplicit Allocationsの値を見る。

次に、「他のタブをすべて閉じる」でYahoo! JAPAN以外のWebページはすべて閉じる。1分間そのまま放置した後、再びabout:memoryを呼びだしてExplicit Allocationsの値を見る。

Firefox 7 Firefox 8
10サイト表示 92.65MB 91.34MB
単サイト表示 45.66MB 44.65MB

Firefox 8の方がメモリ使用量は少ないようだ。Mozillaは、MemShrinkというプロジェクトを立ち上げて、使用メモリの削減に積極的に取り組んでいる。その成果がいよいよユーザーの手に渡るようになってきた。

ページの読み込み

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

Yahoo!ニュース

Firefox 7 Firefox 8
平均値 1.20秒 1.00秒
中央値 1.93秒 1.40秒

平均値、中央値ともにFirefox 8が勝った。そして、ぜひ付け加えておきたいのが、テストのときにどちらも全く引っかかりがなくスムーズに読み込みが行われたこと。キャッシュの効かない初回の読み込みが遅いのは当然として、かつては、2回目以降になぜか極端に時間がかかる場合があった。だが、最近のFirefoxにそうした傾向は見られず、読み込み速度が安定しているように感じる。

asahi.com

Firefox 7 Firefox 8
平均値 2.17秒 1.98秒
中央値 1.69秒 1.80秒

平均値でFirefox 8、中央値でFirefox 7に軍配が上がった。Windows版では、不具合回避のためnetwork.http.max-connectionsの値が256から48へと引き下げられたわけだが、その影響があるのかもしれない。

動的ページの処理

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

Vector Charting Test

Firefox 7 Firefox 8
fps 22 22.46

前回同様、測定誤差程度の違いしかみられない。

Bitmap Gaming Test

Firefox 7 Firefox 8
fps 58.84 58.81

こちらも前回と同様だ。GUIMark 2から3つもテストを引っ張ってくるかどうか、そろそろ見直しが必要になってきた。これもFirefoxが高速化したからこそ。

Text Column Test

Firefox 7 Firefox 8
fps 54.34 53.43

前回はわずかに数値が上向いたが、今回はわずかに低下する結果に。つまりほぼ横ばいの状態が続いている。

Canvasの描画

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

Firefox 7 Firefox 8
Total Score 2.91 2.90

測定誤差が出たものとみられ、Firefox 7と性能は変わらない。この部分は最近強化したばかりなので、さすがにこの状態が当分続くだろう。

HTML5/JavaScript総合

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

Firefox 7 Firefox 8
Score 7379 6304

今回行った一連のテストの中で、最大の問題点がここだ。Firefox 4のリリース以降、ずっとスコアアップを果たしてきたこのベンチマークで、初めて、しかも大きく数字を落とした。動作の様子を見ていても、Firefox 8はときどき処理落ちして、明らかにカクつく。

ちょっとしたバグなら、次のバージョンで修正が入るだろうから、騒ぐほどのことでもない。だが、もしこれがガベージコレクション(GC)の影響だったとしたら? GCとは不要になったメモリ領域を自動的に解放する機能である。Gregor Wagner氏は『Generational GC always better?』の中で、Chromeに比べてFirefoxはGCによる処理の中断が少ないと述べていた。FirefoxはChromeのような世代別GCを導入していないはずだが、メモリ消費量を抑える処理を組み込んでいく中で、同じような問題を抱えるようになった可能性も考えられる。この推測が外れてくれるとよいが……。

JavaScript処理

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

SunSpider

Chromium Blog「Updating JavaScript Benchmarks for Modern Browsers」で紹介されている、Google修正版のSunSpider 0.9.1 JavaScript Benchmarkを用いる。それぞれのテストを50回連続で行うようにしたものだ。

Firefox 7 Firefox 8
Total 195.6ms +/- 0.6% 188.3ms +/- 1.8%

前回の数字と比較してもらうとわかるが、どうやらFirefox 7でわずかにパフォーマンスが落ちていたようだ。Firefox 8でその分が元に戻った。

V8 Benchmark

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

Firefox 7 Firefox 8
Score 4882 4834

総合スコアにほとんど差はないが、個別の項目を見ると、EarleyBoyerとRegExpのスコアが低下し、Splayのスコアが向上した。SunSpiderの結果も踏まえると、多少チューニングが入ったか。

Dromaeo

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

Firefox 7 Firefox 8
Total 465.80runs/s ±1.75% 467.85runs/s ±1.70%

Firefox 8で再び上昇傾向に戻った。やはりFirefox 7がややイレギュラーだったとみるべきか。Firefox 4以降、それほど差がなく推移している。

Kraken

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

Firefox 7 Firefox 8
Total 4518.8ms +/- 0.6% 4590.4ms +/- 1.9%
ai 750.2ms +/- 0.8% 752.4ms +/- 1.3%
audio 1492.5ms +/- 1.0% 1554.6ms +/- 4.8%
imaging 1372.9ms +/- 1.0% 1373.4ms +/- 0.9%
json 169.6ms +/- 1.5% 173.1ms +/- 3.9%
stanford 733.6ms +/- 1.7% 736.9ms +/- 3.1%

スコアが落ちているのはあいかわらず。なぜDromaeoと逆の傾向を示すのか不思議だ。個別の項目では、audioの数値の低下が目立つ。enchant.jsのベンチマークで足を引っ張っていたのがこの部分だというのなら、解決もそれほど難しくはなさそうだが……。

総合評価

Firefox 8は、Firefox 7からさほど変化はないものの、メモリ使用量はいっそう抑えられ、Webページの読み込みも若干スムーズになったようだ。それだけに、Webアプリ系のベンチマークで問題が見つかったのは残念である。

しかし、影響を受けるWebアプリはごく一部だろう。むしろ、Firefox 8ではGoogle MapsGLのように新技術を体験することもできる。

Mozillaは、Firefoxのバージョンアップ時にパフォーマンスを落とさない方針であり、その方針を現実のものとするため、リリース前に厳しい品質検証を課してきた。上で問題だと述べたのは、そうした検証に漏れがあったのではないかという趣旨であり、日常的に使用して不具合が生じるものではないことを強調しておきたい。