ブラウザGPUベンチマークで測れること、測れないこと
ブラウザのGPUベンチマークは実際の処理を測りますが、数値がそのままGPU単体の性能を表すわけではありません。このツールを作る立場から、役立つ用途と別の測定が必要な場面を整理します。ネイティブベンチマークとは測る経路が違うため、数値だけを直接比較しないでください。
数値に実際に含まれるもの
パフォーマンステストが、端末は安定したフレームレートで600,000粒子を維持したと報告する時、その数値は長い経路の積です。
- 当然ながらGPUシリコン。
- ドライバーと、それを包むブラウザの変換層。
- フレームが実際に画面へ届く時刻を決めるブラウザコンポジター。
- CPU負荷シーンにおけるJavaScriptとガベージコレクター。
- 動作クロックや電力上限を調整するOSの電力管理。
- 筐体、ファン曲線、前回実行からの時間という熱条件。
- 開いた40タブ、ビデオ通話、午後のウイルススキャンなど、同時に動くすべて。
ネイティブベンチマークはハードウェアを分離するため、この経路の一部を意図的に迂回します。ブラウザベンチマークは残し、その判断には長所と短所があります。
ブラウザのスコアが不適切な用途
異なるシステム間でGPUを順位付けする。 同じグラフィックスカードでも、ブラウザ、ドライバー版、OSが違えば大きく異なる場合があります。ブラウザが変換層だからです。WebGL呼び出しは、macOSならMetal、WindowsならDirect3Dという下層のネイティブAPI向けに書き換えられます。GPU機種同士の強さを知りたいなら、ネイティブのレビューが正しい測定器です。
ゲームの絶対FPSを予測する。 何週間も最適化したゲームエンジンはブラウザCanvasと同じ動きをしません。ブラウザのスコアはゲーム性能と緩く相関しますが、予報ではありません。
小さな差を読む。 どのブラウザベンチマークでも5回実行すれば、数%のばらつきが自然に出ます。その範囲内の差はノイズです。本テストが性能変動のあった実行を示し、シーン別結果を見せるのは、小差を過大評価させないためです。
ブラウザのスコアが適切な用途
ウェブが実際に使える性能を測る。 重いウェブアプリ、Canvasツール、地図、WebGLサイトの感触を知りたいなら、変換層は測定誤差ではなく測定対象です。実性能を半減させるブラウザ更新による性能低下はネイティブベンチマークに見えませんが、ブラウザベンチマークなら影響を捉えられる場合があります。
自分の機種を過去の自分と比べる。 同じ端末、同じブラウザで、ドライバー更新、OSアップグレード、疑わしい速度低下の前後を比べる用途です。変更した一つ以外を固定できるため、特に有効です。端末内のスコア履歴は、まさにこのために残ります。
同じ経路を大規模に比較する。 同一のバージョン付き負荷を10,000回実行し、GPUファミリー別に分ければ、MシリーズMacBookや中級Androidがブラウザで一般的に出す性能の有用な中央値になります。匿名サンプルはこのデータセットを作り、公開には最低サンプル数を設けます。ただし、利用者が自ら参加するデータであり、全市場を代表する無作為標本ではありません。
所有していない端末を即座に診断する。 インストールも管理者権限も不要で、確認中の中古ノートPCや制限された業務端末でも動きます。実行できない優れたテストより、実行できるテストが役立ちます。関連して、中古端末の画面点検手順もあります。
比較条件と制約を明示する
詳細はスコアの仕組みにあります。要点は次のとおりです。
- FPSカウンターではなくフレーム時間。 数秒のウィンドウで95パーセンタイルを評価します。平均値だけでは短い停止を見落とすことがあります。
- 固定フレーム予算。 画面のリフレッシュレートにかかわらず16.67 msとし、120 HzノートPCを良い画面のために罰しません。
- バージョン付き負荷。 シーンの描画内容を変更すればベンチマーク版を上げ、版をまたいで比較しません。
- 性能変動を表示。 実行中に処理が遅くなった場合は、その状態を結果に表示します。熱による性能制限や背景処理などの影響を見落とさないためです。
- 測定範囲を明示する。 数値はブラウザ負荷スコアと呼びます。測っているものがそれだからです。
保存する価値のある数値を得る
不要な作業を閉じ、電源、省電力設定、本体の温度を確認します。一度ウォームアップしてから同じ条件で2回以上測ると比較しやすくなりますが、連続実行で熱が蓄積することもあります。2回目が必ず正確とは限りません。バージョン、ブラウザ、電源条件も記録しておくと、後から結果を読みやすくなります。