ブラウザーによってベンチマークのスコアが違うのはなぜ?Chrome・Safari・Edge・Firefoxを公平に比較する方法

同じ端末でもブラウザーが変わるとWebベンチマークのスコアが変わる理由を、JavaScriptエンジン、WebGPU、セキュリティ方針、拡張機能の観点から説明し、Web Benchのブラウザー対決で公平に比較する手順を紹介します。

同じノートPCで、同じ電源の状態のまま、数分の間隔を空けて同じベンチマークを実行したとします。ChromeのほうがSafariより高かった、あるいはその逆だった、ということがあります。端末やテストのせいにする前に、これは普通のことだと知っておいてください。Webベンチマークが測っているのは、むき出しのハードウェアではありません。ブラウザーを通したときのハードウェアの性能です。そして、どのブラウザーも、コードとチップの間に少しずつ違う形で入り込んでいます。この記事では、Chrome、Safari、Edge、Firefoxでスコアが変わる理由と、Web Benchのブラウザー対決機能で、同じ端末のブラウザーを公平に比較する方法を説明します。

ネイティブのベンチマークは、OSの近くで動作し、ハードウェアの限界近くまで性能を引き出せます。一方、Webベンチマークは、JavaScript、WebAssembly、Canvas、WebGPUなどのブラウザーAPIを通してしか端末にアクセスできません。コードからCPUに届くまでの間に、ブラウザーのエンジン、グラフィックス層、セキュリティ方針がそれぞれ関わってきます。そのため、同じハードウェアでも、どのブラウザーでページを開くかによって数字が変わります。これはバグではなく、想定された動作です。

これは単なる欠点ではありません。文書の編集、ビデオ通話、デザインツール、ゲームがブラウザーの中に移ってきた今、ブラウザー内での性能は、実際の体感に近いものです。「自分の端末はどれくらい速いか」と「自分の端末でブラウザーはどれくらいうまく動くか」は別の問いであり、Webベンチマークが答えるのは後者です。

だからこそ、スコアは常にそれを出したブラウザーとあわせて読む必要があります。Web Benchは、結果ごとに「クイックテスト · 12テスト · WebGPU · Chrome 142」のような行を表示します。測定モード、テスト数、グラフィックス経路、そしてブラウザーの系統とメジャーバージョンです。読み取るのは系統とメジャーバージョンだけで、User-Agentの生の文字列は保存も送信もされません。

理由その1:JavaScriptエンジン

どのブラウザーにもJavaScriptエンジンが搭載されています。よく知られているとおり、ChromeとEdgeはV8、SafariはJavaScriptCore、FirefoxはSpiderMonkeyを使っています。いずれも、まずコードを軽く解釈実行し、よく使われる部分を段階的により高速な機械語にコンパイルしますが、何を、いつ、どれだけ積極的に最適化するかはエンジンごとに異なります。

その結果、処理の種類によって勝者が入れ替わることがあります。文字列処理、JSONの解析、ソート、数値ループ、大量のオブジェクトを作るコードは、それぞれ得意不得意が異なります。メモリの後片付けの方式であるガベージコレクションも異なるため、メモリを多く使う作業では差が広がることがあります。だからこそ、いつでも最速のブラウザーは存在しません。エンジンはリリースのたびに変わるので、昨年に見たパターンが今年も当てはまるとは限りません。

OSも関係します。iPhoneやiPadでは、ブラウザーは長らくSafariと同じWebKitベースのエンジンの上に作られてきました。そのため、iOSでChromeのアイコンをタップしても、PCのChromeと同じエンジンになるわけではありません。方針は地域やOSのバージョンによって異なることがあるので、思い込みではなく、結果カードに表示されるブラウザー名とエンジンの情報を頼りにしてください。

理由その2:WebGPU、WebGL、グラフィックスのバックエンド

GPUのスコアは、ブラウザーによる違いがとくに出やすい部分です。Web BenchはまずWebGPUを試し、WebGPUが使えない場合はグラフィックステストに限ってWebGL2に切り替えます。WebGPUの対応状況は、ブラウザー、OS、ドライバーによって変わり続けています。片方のブラウザーがWebGPUで、もう片方がWebGL2で動いた場合、2つのスコアを同じ列に並べて順位付けするべきではありません。

ブラウザーはOSのグラフィックスAPIの上で動いており、どのバックエンドを選ぶかは環境に左右されることがあります。同じGPUでも、ドライバーとバックエンドが違えば、シェーダーのコンパイルのされ方や実行速度が変わります。計算テストにはWebGPUが必要で、f16の行列乗算はshader-f16機能に対応しているときだけ実行されます。そのため、同じGPUの上でも、2つのブラウザーで実行されるテストの数が異なることがあります。

  • 非対応のテストはエラーではなく除外として扱われ、結果画面に理由が表示されます。
  • グラフィックス経路が異なる場合(WebGPUとWebGL2)、GPUスコアはおおまかな目安としてのみ扱ってください。
  • ハードウェアアクセラレーションがオフになっていると、GPUスコアが大きく下がることがあるため、まずこの設定を確認してください。
  • ブラウザーがWebGPUに対応しているのにオフになっている場合は、設定でオンにできるか確認してください。

理由その3:セキュリティ方針、分離、タイマー

Spectreファミリーなど、CPUの投機的実行を狙った攻撃を防ぐため、ブラウザーは精密な時間計測とメモリの共有を制限してきました。広く知られている対策は2つあります。1つは、タイマーの精度をわざと下げること。もう1つは、複数のWorkerがメモリを共有するSharedArrayBufferのような機能を、クロスオリジン分離されたページでのみ許可することです。

実装や既定値はブラウザーごとに異なります。タイマーが粗いと、短いタスクの時間を正確に測りにくくなり、測定のノイズが増えます。分離がされていないと、マルチコアのテストでWorkerどうしが連携する方法が変わることがあります。Web Benchが、CPUマルチコアの結果はブラウザーが使うWorkerの数と同期の仕方に左右されるので物理的なコア数にそのまま換算しないよう注意を促しているのも、このためです。

そのため、ブラウザー対決の環境比較には、クロスオリジン分離と同期方式、使用したWorkerの数、測定できたタイマーの最小間隔(マイクロ秒)が含まれています。2つの数字が違うとき、これらの行を見れば、片方のブラウザーが本当に遅いのか、それとも単に時間を測る精度が異なるだけなのかを判断しやすくなります。

拡張機能、タブ、電源の状態

エンジンや方針と同じくらいよくあるのが、各ブラウザーの使い方の違いです。毎日使っているブラウザーには、広告ブロッカー、翻訳ツール、パスワードマネージャーが入っていて、数十個のタブが開いているでしょう。めったに使わないほうはまっさらな状態です。そのまま比べると、測っているのはエンジンの違いではなく、拡張機能とタブの違いです。

  • 拡張機能:すべてのページにスクリプトを挿入したり、バックグラウンドでCPUを使ったりするものは、スコアを下げ、ばらつきを大きくします。プライベートウィンドウは通常、拡張機能が既定で無効なので基準として便利ですが、ストレージなど一部の機能が制限されることがあります。
  • 開いているタブとバックグラウンドの処理:他のタブでの動画再生、ダウンロード、同期は、テストとCPUやメモリを奪い合います。開始前に閉じ、実行中はテストのタブを隠さないでください。隠すと実行中のラウンドは破棄され、戻ったときに測り直されます。
  • 電源と発熱:ノートPCの性能の上限は、電源に接続しているかどうかや電源モードによって決まります。最初のブラウザーで本体が熱くなったままだと、次のブラウザーのスコアは低くなります。
  • ブラウザーの設定:ハードウェアアクセラレーション、効率モードやバッテリーセーバー、プライバシー設定も、結果を変えることがあります。

Web Benchのブラウザー対決の使い方

Web Benchには、サーバーを使わず、共有リンクだけで2つのブラウザーを並べて比較できるブラウザー対決機能があります。手順は次のとおりです。

  1. 最初のブラウザーでテストを完了し、共有リンクを作成します。共有パネルには、別のブラウザーでそのリンクを開いてテストを実行すると並べて比較できる、という案内が表示されます。
  2. 同じ端末の別のブラウザーで、そのリンクを開きます。リンクに最初の結果が含まれているので、アカウントもサーバーへの保存も必要ありません。
  3. 共有された結果のページで、このブラウザーで測定して比較するボタンを押します。テスト画面の上に「比較対象: Chrome · ____点」のようなバナーが表示され、測定方式は同じものに固定されます。変更しようとすると警告が出ます。
  4. テストが終わると、ブラウザー対決のカードが表示されます。総合スコアとカテゴリー別スコアを2列で並べ、差をパーセントで示し、各カテゴリーの勝者と、全体の1行まとめを表示します。
  5. 詳細比較の表までスクロールすると、テスト別の値を、ブラウザー環境の表ではエンジン、グラフィックス経路、分離、タイマーの詳細を確認できます。

2つの列のタイトルには、役割とブラウザーの両方が表示されます。たとえば「共有された結果 · Chrome 155」と「このブラウザー · Safari 18」のようになります。両方のブラウザー名が同じ場合は、代わりに「このブラウザー」と「共有された結果」と表示されます。対決の結果も共有でき、そのリンクにはもう一方の結果も含まれます。リンクが長くなりすぎる場合は、テスト別の詳細が省かれてカテゴリースコアだけが残り、その旨が通知されます。

結果の読み方:勝者より先に誤差範囲を

対決カードには、各カテゴリーでどちらが高いかが表示されますが、最初に確認すべきなのは差の大きさです。Web Benchは、±3%以内の差を「ほぼ同じ」として扱います。その場合、まとめでは勝者を宣言せず、マスコットも考え込んだ表情になります。勝って大喜びする顔や、負けて泣く顔は、次の測定でひっくり返らない程度に大きな差がある場合にだけ表示されます。

詳細比較の表はさらに厳密です。各テストは3回測定した中央値を使い、そのばらつきを「最大値÷最小値−1」で計算して記録します。両方のブラウザーのばらつきの合計(最低±3%)以内に収まる差は、灰色で「差なし(誤差範囲内)」と表示されます。レイテンシーのように低いほど良い指標は、逆向きに解釈されます。まとめの文では、カテゴリーごとの勝者を集計し、たとえばJavaScriptとデータ処理ではどちらが、グラフィックスとストレージではどちらがリードしているかを示し、誤差範囲内だった項目の数も知らせます。

警告も無視しないでください。整理された端末名(チップまたはGPU)やコア数が違う場合は、結果が異なる端末のものである可能性があり、公平な比較ではないという警告が表示されます。公式バージョンが違う場合は、数値の比較の代わりに案内が表示されます。そのようなときは、その結果でブラウザーを判断しないでください。

公平な比較のための準備

ブラウザーを比較するということは、変数をブラウザーただ1つにするということです。それ以外はすべてそろえなければなりません。次のチェックリストで、結果の信頼性がぐっと高まります。

  1. 同じ端末、同じOSのアカウントでテストする。対決カードに、異なる端末名やコア数についての警告が出ていないか確認する。
  2. 両方のブラウザーを最新の安定版に更新する。バージョンが大きく離れていると、エンジンの改善だけで結果が変わることがある。
  3. クイックや標準など、同じ測定方式を使う。対決モードでは自動的に固定される。
  4. 拡張機能をオフにするか、プライベートウィンドウを使い、両方のブラウザーを同じ条件にそろえる。
  5. 他のアプリやタブを閉じ、ダウンロード、動画、クラウド同期を一時停止する。
  6. ノートPCでは、充電器を接続し、電源モードを同じにする。1つのブラウザーでテストしたあとは、次を始める前に本体を冷ます。
  7. 可能なら、順序を逆にしてもう一度ペアを測定する。順序が結果に影響することがあるため。
  8. 各ブラウザーを2〜3回繰り返し、ばらつきの範囲を見る。

グラフィックス経路も確認してください。片方がWebGPU、もう片方がWebGL2だった場合は、GPU項目を直接比較するのを避け、環境の表のグラフィックス経路の行を使って差を説明しましょう。AI推論を含めた場合は、両方の測定でWebGPUまたはWASMのどちらか同じ経路を使って初めて、同じ条件とみなせます。

普段の使い方に合わせたブラウザーの選び方

結果が出たら、どのブラウザーが勝ったかを考える前に、自分の普段の作業はどのカテゴリーに当てはまるかを考えてください。スコアが一番高いブラウザーが、あなたにとって最適とは限りません。

  • 主に文書の編集、チャット、ネットショッピングをするなら、CPUシングルとブラウザーの結果がいちばん重要です。その差が誤差範囲内なら、速度ではなく、同期、拡張機能への対応、プライバシー設定など別の基準で選びましょう。
  • ウェブ上での画像・動画編集やデータ処理など重い作業をするなら、CPUマルチ、メモリ、ストレージの結果に注目してください。
  • 3Dマップ、Webゲーム、エフェクトの多いサイト、ブラウザー内のAI機能を使うなら、GPU描画、GPU計算、WebGPUへの対応がいちばん重要です。
  • バッテリーの持ちを優先するなら、スコアと同じくらい消費電力が重要だと覚えておいてください。Web Benchは電力効率を直接は表示しないので、実際のバッテリー駆動時間は別に確認してください。
  • 学校や職場が、必要なサービスについて公式に1つのブラウザーしかサポートしていない場合は、スコアに関係なくそのブラウザーが最優先です。

最後に、ブラウザーどうしの差はアップデートで変わります。数か月前の結果で今日決めるのではなく、ブラウザーの大型アップデートのあとや端末を替えたときに、もう一度対決を実行しましょう。どのスコアも環境によって変わる参考値であり、特定のブラウザーが常に優れていると結論づけるために使うべきではありません。

Web Benchでテストを始める

注:この記事はWeb Benchの現在の機能を説明したものです。スコアは端末、ブラウザー、条件によって変わる参考値です。結果はサーバーには送信されず、共有リンクの中に含まれて渡されます。

← ガイド