インターネット
 Computer >> コンピューター >  >> ネットワーキング >> インターネット

ブラウザの速度ベンチマークはなぜ無意味なのか?その真実に迫る

ブラウザの表示速度については、これまでにも何度か取り上げてきました。ブラウザが遅く感じられるのは、OS内の設定ミスや最適化されていないコンポーネントが原因となっているケースが多く、その結果として快適さを損なう閲覧体験につながるという話です。今回は少し視点を変えて、ブラウザ速度の議論のもう一つの極、「ベンチマークテスト」について考えてみます。

ベンチマークは本来、自分が選んだブラウザの優秀さを証明し、選択への自信を深めてくれるものであるはずです。しかし実際には、これらのテスト結果はあなたの環境とは何の関係もなく、ブラウザ内部の作りだけを測るものにすぎません。そしてそれこそが、ベンチマークを完全に無意味なものにしているのです。順を追って説明していきましょう。

技術的な背景を理解する

大多数の人は、ブラウザの速度ベンチマークが何を意味し、日常の使用にどう影響するのかを理解していません。しかし「速い」「最速」という言葉なら誰でも分かります。人々は自動的にその言葉を、堂々たるスーパーカーのイメージへと置き換え、一瞬の高揚感を味わうのです。しかし現実はもう少し複雑です。

ブラウザのベンチマークとは、本質的には開発者同士の「概念上の優劣競争」です。誰がより最適化されたブラウザエンジンを書けるかを競うものであり、シングルスレッドとマルチスレッドの処理、ミューテックス、サンドボックス化といった、いわば技術者向けの用語の世界の話です。

正直に言えば——そしてこんな真実を語る人はほとんどいませんが——ブラウザの速度テストが実生活に関係ある程度は、ランボルギーニLM002の燃費データと同じくらいです。遅いユーザーやネットワーク混雑のない完璧な世界において、フードの下にある技術が何をできるかを垣間見せる、そんなものにすぎません。残念ながら現実の世界は完璧ではありません。

ボトルネックはブラウザではない

シンプルな事実として、あなたのブラウザはインターネットを機能させる長いチェーンの中の一つのリンクにすぎません。ブラウザは、極めて複雑で多層的なネットワークの末端に位置するエンドポイントなのです。

ウェブサイトのアドレスを入力してからページが表示されるまでには、一連のイベントが発生します。ページのリクエストはデータパケットに変換され、ネットワークスタックを通過し、フィルタリングツール、アンチウイルスソフト、ファイアウォールを経由して、ルーター、モデム、ISPのスイッチへと送られ、そこからさらに10回ほどのホップを経て、目的のページを保持するWebサーバーに到達します。

このチェーン上のどの要素も、最適以下のパフォーマンスしか発揮できず、わずかな遅延を生む可能性があります。そしてユーザーはそれを、まとめて「ブラウザの体験」として受け取ってしまうのです。

接続先のWebサーバーが高負荷状態かもしれません。リクエストしたページが巨大で、別のサーバー上でホストされるサードパーティのコードを含んでいるかもしれません。インターネットのラッシュアワーで、契約者に対して過剰に帯域を販売しているプロバイダが苦戦している可能性もあります。映画をダウンロード中なら、それも結果に影響します。無線の電波状況、複数台のPCによる帯域の共有、バックグラウンドでの定期アップデート、CPU負荷——これらすべてがブラウジングに影響を与える要因です。これらを組み合わせると、一つの大きな未知数になります。しかし大多数の人はそれを知りません。彼らが目にし感じるのは、リクエストしたページの読み込みだけなのです。

筆者の実体験から

数ヶ月前、私は自宅で最も低速だった1.5Mbitの回線を12Mbitにアップグレードしました。ここで質問です。私のブラウジング体験は向上したと思いますか?答えはノーです。変化があるとしたら、感知できないレベルのものです。持続的なアップロード・ダウンロード速度はかなり直線的に改善し、ping値も良くなってオンラインゲームは楽になりましたが、ブラウジングの体感は一切変わらなかったのです。

なぜそうなるのか?答えはシンプルです。私のブラウジング環境は、帯域幅とは独立に、すでに最大限まで最適化されていたからです。ブラウザの速度を考える前に、まず最初にやるべきことはこれです。

自分のマシンを最適化し、利用可能な最高のパフォーマンスを引き出す必要があります。そして、ボトルネックが自分の管理範囲外に存在することを確認しなければなりません。ボトルネックは、自宅の外側にある多数のリンクのどこかにあってほしいのです。1MBの回線で1MB分のウェブデータ(テキスト、画像などすべて)をダウンロードするなら、どんなことがあっても1秒未満では完了しません。ブラウザに魔法は使えないのです。

ベンチマークとは何を意味するのか?

仮にあなたのPC環境が完璧で、マシンの足を引っ張るようなセキュリティソフトがないとしても、ブラウザの速度テストは依然として未知数の塊です。どうやってブラウザを比較すればいいのでしょうか?ウェブページを読み込ませればいい?ある意味正しいですが、外部で何が起きているかは制御できないことを忘れてはいけません。

唯一 truly 正確なテストは、自分のマシン上でWebサーバーを起動し、localhostに対してテストを実行することでしょう。こうすれば、外部要因がネットワークに影響を与え、ブラウザの領域に持ち込まれて誤った印象を作り出すことがないと分かります。

インターネットは絶えず変化する嵐のようなものです。異なるブラウザで数秒差で同じページを読み込んでも、それは異なる条件下での実験になってしまいます。ある程度の正確性を主張する唯一の方法は、複数のウェブサイトに対して、一日に何度も、週の異なる日に、数週間にわたって何百回ものベンチマークを実行することです。しかもそれを、異なるブラウザ、異なるOS、異なるハードウェアプラットフォーム、異なるプロバイダ、異なるネットワーク技術、暗号化方式などについて行う必要があります。そんなことをする人は誰もいません。

ブラウザの応答速度の測定自体も簡単ではありません。あなたの目が見ているものと、ソフトウェアが見ているものは違います。ブラウザインターフェース内の視覚的トランジション効果を使えば、実際のレンダリング速度は変わらないまま、「速さの錯覚」を作り出せます。体感的な遅さと本当の遅さの違いの好例が、Internet Explorerでの新規タブのオープン速度です。FirefoxやChromeなどは(馬鹿げたアンチウイルスソフトなどに妨害されていなければ)タブを瞬時に開きますが、IEはタブを開くのに約0.5秒かかります。これは大きな違いです。その後コンテンツが速く読み込まれたとしても、全体的な印象は台無しになってしまいます。

このため開発者たちは、ブラウザのレンダリングエンジン、特にJavaScriptコンポーネントに負荷をかける、さまざまな計算系ベンチマークを生み出しました。確かに、この種のテストでは大きな差が見えます。

しかし、その結果は塩ひとつ、いや胡椒も添えて受け取るべきです。生のJavaScriptベンチマーク自体は悪くありませんが、ウェブの現実を考慮に入れていないのです。

多くのページは比較的少量のコードを使用しており、それは数ミリ秒以内に実行されます。ユーザーが何かに気づくずっと前の話です。一方、ベンチマークテストの完了には数秒かかり、典型的なページ読み込みの何倍もの時間がかかります。つまり、あるブラウザが他のブラウザに対して持つ明確な優位性は、現実には薄まってしまうのです。

無意味な測定例:コールドスタートとホットスタート

これは本来、ブラウザの遅さに関する最初の記事に属する話題ですが、誘惑に抗えませんでした。自称ブラウザ専門家のほぼ全員が、Excelのグラフにいわゆる「コールドスタート」と「ホットスタート」を盛り込み、科学的に見えるテストに深みを加えようとします。コールドスタートとは、マシン再起動後にプログラムを初めて起動したときのブラウザインターフェースの立ち上がりの速さ。ホットスタートは、2回目、3回目の再起動時のことです。

忘れてはならないのは、チェックに有効性を持たせるには、異なるOSやハードウェアプラットフォームで何百回もテストする必要があるということです。それでもなお、コールドスタートの数値が何を教えてくれるのでしょうか?シベリアの冬にかけるラーダ・ニーヴァのエンジン始動とは違います。ブラウザは、CPUキュー、スケジューラ、優先度、その他百万のパラメータを奪い合う百のバックグラウンドプロセスに依存しています。無意味なテストを実行するとき、誰もそんなことは気にしません。

ホットスタートも同じです。終了時点で、OSはメモリやカーネルバッファからすべてのページを解放したのか?メモリキャッシュやスループットは?共有メモリは?ディスクは今何をしている?回転しているのか?速度は?等々。こうした問いに答えるブラウザ速度ベンチマークは一つもなく、ブラウザエンジンのコードを扱うようになると事情はさらに悪化します。

結局残るのは、文脈から切り離された数字の羅列されたグラフの山です。しかし皆、自分が専門家だと思っています。そして人々は、お気に入りのブラウザでお気に入りのウェブサイトの要素がどれだけ速く読み込まれるかを目で確認しただけで、「何が速いとされるべきか」を専門家に語ってもらうことに依存しているのです。

やや意味のある例:SunSpiderの場合

議論のために、SunSpiderベンチマークがブラウザAでは5秒、ブラウザBでは10秒かかるとしましょう。5秒の差は大きく見えます。しかし、平均的なウェブページの読み込みは仮に1秒とし、その半分がJavaScriptの実行に充てられるとします。すると、ブラウザAがある操作に0.5秒かかるなら、ブラウザBは1秒かかる計算になります。0.5秒の差は気づけるでしょうか? perhaps 気づけるかもしれません。しかし決定的に重要ではありません。

では、2つのブラウザの差が40%(それでも大きい方)だとしたらどうでしょう。相対的な差は0.2秒になります。それは瞬き程度の時間です。これはおよそ人間の反応閾値であり、その時間枠内のものはユーザーには同じように見えます。しかもこれは純粋なエンジンのレンダリング速度の話で、他のすべてのウェブ要素やコンテンツは考慮されていません。

現代のブラウザを比較してみると、統計的には大きくても、人間的な尺度ではごくわずかな差がところどころに見えるだけです。数時間のブラウジング全体で集計すればベンチマークにある程度の有効性を認められるかもしれませんが、瞬間ごとの体験としてブラウジングを味わう人間にとっては、その時間差は無視できるレベルなのです。

さらなる考察

さらに、遅いブラウザで生じる余分な時間がユーザーにどう影響するかにも注目すべきです。もし遅さが、ページ下部のボタンが最後に読み込まれるという形で現れるなら、誰も気づきません。ユーザーは読書に夢中になり、画像を見て、ページのレイアウトや要素を吸収しています。特定の要素がもがいているのをほとんど見ることはないでしょう。

次に、新しいページを開きたいとき、あなたはどうしますか?多少でも慣れている人なら、興味のあるリンクを中クリックして、現在のタブのフォーカスを保ちながら新しいタブで開くはずです。今の作業を続け、やがて次のタブへ切り替える。他のページの読み込みに余分に数秒かかったとしても、脳はそれを認識すらしません。実用上、ウェブブラウジングはシームレスな活動なのです。

最後に、多くのページには大量の最適化されていないコード、標準に準拠しないコード、さらにはエラーすら含まれています。人気サイトに対してバリデーションチェックを実行すれば、エラーと警告の量に驚かされるでしょう。多くのウェブサイトは非準拠です。ブラウザ固有のハック、特に古いブラウザでも元のデザインに近い形でページを表示させるために必要だったIE6向けハックのことも忘れてはいけません。これらすべてが、精度を不正確にする大きなノイズを加えているのです。

ベンチマークはサーキット向きのものです。ブガッティ・ヴェイロンとマクラーレンF1を対戦させて、ニュルブルクリンクでどちらが勝つかを見ることはできます。しかし、月曜の朝8時のロンドン市街地でどちらが速く渡れるか、言い当てられますか?

ブラウザも同じです。無菌のラボテストは一つの物語を語ります。それは良い物語です。しかし現実はその物語をごちゃ混ぜにねじ曲げます。ベンチマークが当てはまるのは、ブラウザ間に桁違いの差がある場合だけです。性能が数十パーセント以内で似通っているブラウザ同士なら、最終的な結果はほぼ同じです。ユーザーには違いが分からないのです。

繰り返しになりますが、個人的な例を挙げます。Firefox、Chrome、Opera(使用していた頃)は、すべてほぼ同じ結果をもたらしました。Chromeは速く軽く感じられますが、実生活でのテストでは明確な優位性は示せませんでした。メモリ使用量はマシンごと、OSごとに異なります。結局のところ、それは好みと習慣の問題に帰着するのです。

それでも、ブラウザベンチマークの話を聞くたびに、誰かをバーナーで炙りたくなる衝動を抑えられないでいます。「Xブラウザはダメだ」「Xブラウザの方が速い」——靴紐を結ぶのに混乱しそうな人たちが口にする、美しく雄弁で、何より「科学的」に聞こえる主張に中立でいられるはずがありません。しかし誰もがインターネット学の博士号を持っているつもりなのです。

結局、なぜベンチマークは無意味なのか

ここまでの長い説明でも懐疑的な方が満足されないなら、心の準備をしてください。ベンチマークが無意味なのは、第一にそれが宣伝工作だからです。ベンチマークは完璧さの幻想を作り出し、セキュリティ、プライバシー、使いやすさ、モジュール性、互換性といった本当に重要な事柄からスポットライトを逸らすために使われています。

速度ベンチマークはマトリックス風の美しい動画とそのパロディを生み、フォーラムのファンボーイズを熱狂させ、実験計画法の基礎も知らない人々が書く記事の魅力的な見出しになります。しかし、あなたの人生を速くはしてくれません。

ソフトウェアはブラウジング体験の一片にすぎません。そして私たちはユーザー——クリックする人間——を忘れています。人間は秒単位、それ以上の単位で考えます。レンダリングエンジンをサディスティックなほど完璧に最適化して得られるミリ秒の差は、Facebookで本当の友人と会話したり、芸能人の記事を読みたいだけの人々にとっては失われるものです。

ほとんどの人は、ブラウザが何なのかすら知りません。今日に至るまで、Windowsユーザーの大多数は、OSに付属する既定のブラウザであるInternet Explorerを使っています。一般ユーザーにとって、インターネットはInternet Explorerと同義です。ブラウザなんて葉っぱを食べる動物のことだと思っているかもしれません。JavaScriptはジャワ島で使われる奇妙な文字体系で、ベンチマークは塗りたての公園のベンチに立てられた注意看板のことなのでしょう。

技術者はミリ秒を愛でるかもしれませんが、それは何の違いも生みません。最悪なのは、ブラウザが完璧でも、それを使うのが平均的な人間だという点です。完璧な製品を素人に渡すことより悪いものがあるとしたら、思いつきません。強いて挙げるなら、リアリティ番組を見ること、化学を学ぶこと、宇宙船事故で死ぬことくらいでしょうか。

しかし、これは狂騒であり、すでに蔓延しています。あるベンダーが自社製品が最速だと大声で叫び、他社がそれに続きました。立ち止まって考える勇気のある者はいません。リスクが大きすぎるのです。この疑似近代的な競争の中で、時代遅れに見られたくないのです。

今や、知的で技術的に聞こえたいすべてのウェブサイトが、JavaScriptだの何だのと長大な言葉を並べ、実証できないことを証明するために繰り返し引用される数字を並べています。これは「百匹目の猿効果」です。ブラウザベンチマークは、ブラウザ評価の聖杯になってしまったのです。当初の意図が何であったかなんて、もう関係ありません。何もかも重要ではなくなりました。あなたは最速のブラウザを持たなければならない、それが何を意味するにせよ。最後に……もしブラウザでJavaScriptをオフにしたら、これらの美しいベンチマークはすべて無意味になります。すべてがテキストに戻る、あるべき姿へ。ああ、残酷ですね。

おまけ:HTML5とコーデック問題

しかし、話はそこで止まりません。HTML5とブラウザコーデックの登場です。ブラウザベンチマークが馬鹿げていると思ったなら、この件がどういうものか見てみるといいでしょう。ただし、それはまた全く別の話です。機会があれば別の記事で。タブを上部に配置する話も、そのうち取り上げましょう!

まとめ

この記事を気に入ってもらえたら嬉しいですが、おそらくそうではないでしょう。ペルシャの大軍を前にしたスパルタ兵のように、あなたは自分のブラウザが技術の頂点であり、生命、宇宙、そしてすべてへの答えを握っていると確信しているのですから。しかしそうではありません。そしてJavaScriptという言葉は、過大評価されています。

賭けてもいいのですが、あなたのPC環境には、ブラウザが本来の速度で息をつけるようになる前に調整すべき変数が少なくとも10個あります。遅いのはブラウザではありません。ブラウザを責めないでください。ブラウザは十分に健闘しています。Internet Explorerは別として。とはいえ、バージョン9はなかなか妥当な出来栄えのようです。

いずれにせよ、JavaScriptベンチマークはそれ自体は結構なものですが、現実とは何の関係もありません。実用上は、モルモットにブラウザを動かさせてもいいくらいです。無意味なことに時間を浪費し悩むのはやめて、W3C準拠や安定性といった重要な事柄に注力しましょう。そちらのほうがよほど建設的な話です。

それでは、また。

  1. Hotmailの10GB添付ファイル機能に意味がない理由

    競合に打ち勝つ最もシンプルな方法は力技です。しかし、それが常に成功するとは限りません。この手法の最たる例が、Microsoft Hotmailの再活性化です。「新HotmailはGmailに真っ向勝負を挑む」といった記事を読んだことがあれば、MicrosoftがGoogleへの猛攻撃によってメールサービスを復活させたという印象を受けたかもしれません。 しかし、私はその記事に同意できません。その理由をご説明しましょう。 まずは例え話から始めましょう。あなたの手元には、必要なことをすべてこなしてくれる快適な小型スポーツカーがあるとします。そこへ別のディーラーが現れ、「うちの車に乗り換えてほしい」

  2. Mozilla Prismとは?サイト固有ブラウザ(SSB)で実現する安全・快適なウェブ環境

    初めて「サイト固有ブラウジング」という言葉を耳にすると、「それは一体何? 普通のブラウジングとどう違うの?」と首をかしげる方も多いでしょう。サイト固有ブラウジング(略してSSB)とは、ウェブブラウザの1つのインスタンスで、たった1つのウェブサイトだけにアクセスするという概念です。つまり、SSBを起動すると、そのアプリは指定された特定のサイトにのみ接続し、それ以外には一切アクセスしません。これこそがPrismの核心です。「悪いアイデアでは?」と思われるかもしれませんが、決してそんなことはありません。その理由を順を追って説明しましょう。 セキュリティ面でのメリット クロスサイトスクリプティング(