なぜブラウザによって表示速度が違うのか?技術的な仕組みと自分でできる高速化のポイント
お気に入りのブラウザはありますか?もしあるなら、その魅力は何でしょうか。プラグインや拡張機能の充実度を重視する人もいれば、プライバシー保護に優れたブラウザを選ぶ人もいます。
しかし、多くのユーザーにとって最も重要なのは「速度」です。
では、なぜブラウザによって速さが異なるのでしょうか?この違いは「技術的な側面」と「ユーザーがコントロールできる側面」の2つに分けて考えることができます。詳しく見ていきましょう。
技術的な側面
すべてのブラウザは、開発者によって異なる手法でコーディングされています。このコーディング手法の違いが、Webページの読み込み時間に影響を与えます。
押さえておくべき重要な要素は2つあります。それがブラウザエンジンとJavaScriptエンジンです。
ブラウザエンジン
ブラウザエンジンは、あらゆるブラウザの中核を担うコンポーネントです。HTMLやCSSのコードを解析して画面に表示する、セキュリティポリシーを適用するなど、多くのタスクを担当しています。
少なくとも、ブラウザエンジンはHTMLやXMLドキュメント、画像を表示し、フォント、色、文字サイズを設定できます。使用しているブラウザによっては、PDFなどのドキュメントも表示できる場合があります。
主なブラウザエンジン
ブラウザエンジンにはいくつかの種類がありますが、よく使われているのは「Blink」「EdgeHTML」「Gecko」「WebKit」の4つです。
Blinkは、Google、Opera、Adobe、Intel、Samsungが共同で開発したクロスプラットフォームのエンジンです。ChromeとOperaの両方に搭載されています。もともとはWebKitのフォークで、WebKit自体はKDEのKHTMLとKJSライブラリから派生したものです。GNU LGPLライセンスで自由に利用できます。
EdgeHTMLはMicrosoft独自のブラウザエンジンで、同社のEdgeブラウザ専用に開発されました。2015年に、Internet Explorerに搭載されていたTridentに代わって採用されました。理論上は、BlinkやWebKitと完全な互換性があります。
GeckoはMozillaが開発したエンジンです。FirefoxやThunderbird、その他いくつかのマイナーなブラウザに搭載されています。
最後に、WebKitはAppleのブラウザエンジンです。Safari、Amazon Kindleのブラウザ、TizenスマートTV、BlackBerry OSなどで使用されています。2013年まではChromeのエンジンでもありました。
その他のブラウザエンジンとしては、GeckoのフォークであるGoannaや、Mozillaの実験的なエンジンであるServoなどがあります。
重要性の低下
2000年代には、ブラウザエンジンは、あるブラウザが競合他社よりも速くページを読み込めるかどうかを決める、最も重要な要素だったと言えます。
しかし、技術が高度化するにつれ、ブラウザエンジンの重要性は低下しています。現在では、パフォーマンスに関して最も重要な技術的要素ではなくなりました。
代わりに注目すべきは、JavaScriptエンジンです。
JavaScriptエンジン
各ブラウザは、JavaScriptエンジンも使用しています。ブラウザがWebページを読み込む速さに最も大きな影響を与えるのは、このJavaScriptエンジンです。
ご存じない方のために説明すると、JavaScriptはインターネット上で使われているプログラミング言語で、インタラクティブなオブジェクトやアニメーションなど、ユーザー体験に関わる機能の多くを支えています。
JavaScriptエンジンは、サイトのJavaScriptコードを、ブラウザができるだけ短時間で解釈できる最適化された出力に変換する役割を担っています。ここでも、主要なブラウザごとに異なるJavaScriptエンジンが使われています。
V8
V8はGoogleのJavaScriptエンジンです。2008年のChrome初公開当初からChromeブラウザに搭載されています。
V8には2つのコードコンパイラが備わっています。Full-codegen(高速だが最適化されていないコードを生成するコンパイラ)とCrankshaft(低速だが最適化されたコードを生成するコンパイラ)です。コードはまずFull-codegenで実行され、Crankshaftが最適化が必要と判断した場合に処理を引き継ぎます。
JavaScriptCore
JavaScriptCore(Nitroのブランド名で知られる)は、AppleのSafariブラウザを支えるエンジンで、2番目に主流となっているJavaScriptエンジンです。
V8とは仕組みが異なり、2つのコンパイラを使う代わりに、すべてのJavaScriptを字句解析にかけてトークンを生成します。トークンはパーサーによってバイトコードに変換され、その後4つの「ジャストインタイム(JIT)」プロセスがバイトコードを実行します。
SpiderMonkey
SpiderMonkeyは世界初のJavaScriptエンジンです。1990年代にNetscapeが開発しました。Netscapeの終焉後、オープンソース化され、現在はMozillaがメンテナンスしており、Firefoxに搭載されています。
その他の一般的なJavaScriptエンジンとしては、Chakraがあります。Microsoft Edgeの一部として組み込まれています。
どのJavaScriptエンジンが最速なのか?
どのJavaScriptエンジンが最速かについて、明確な答えはありません。あるJavaScriptコードはSafariで速く動作するかもしれませんし、別のコードはChromeのほうが速く動くかもしれません。
違いの多くは、元のJavaScriptの書き方や、各エンジンのコンパイラとの相性によって決まります。また、一部のブラウザでは、サイトごとに読み込みやキャッシュのアルゴリズムを活用して、さらなる速度向上を図っています。
ユーザーがコントロールできる側面
ブラウザの速さに影響する要素の中には、ユーザー自身がコントロールできるものもあります。今すぐ対処できる、最も一般的な3つの問題を紹介します。
1. アップデート
何度もお伝えしていることですが、ブラウザは常に最新バージョンに保つようにしましょう。
新機能やセキュリティ強化だけでなく、内部の技術的な部分も継続的に改善されています。しばらくアップデートしていない場合は、アップデートボタンを押すだけで、大幅な速度向上が得られるかもしれません。
2. 拡張機能とアドオン
プラグイン、拡張機能、アドオンは、ブラウザの機能を大きく向上させてくれます。しかし同時に、ブラウザのリソースを大きく消費する原因にもなります。CPUパワーやRAMを大量に食いつぶしてしまうのです。
追加したくなる気持ちはわかりますが、必要最低限以上の拡張機能は実行しないようにしましょう。
3. 閲覧データ
ブラウザは、利用パターンに関する膨大なデータを収集しています。閲覧履歴、Cookie、ダウンロードログなどが含まれ、キャッシュもどんどん大きくなっていきます。
これらのデータをすべて削除すると、速度が大幅に向上する可能性があります。ブラウザがバックグラウンドでファイルを探す手間が減るからです。
インターネット体験を高速化するその他の方法
ブラウザは、快適なインターネット体験のほんの一部にすぎません。ルーター、Wi-Fiネットワーク、ISP(プロバイダ)、地理的な場所なども、速度に影響を与える要素です。
これらの一部は自分でコントロールできます。Wi-Fiで避けるべきミスやDNS設定の変更に関するガイドをチェックして、インターネット接続速度について詳しく学びましょう。
-
DuckDuckGoがGoogleより優れている理由|知らないと損する9つの隠れ便利機能
インターネットにおける最も重要な発明のひとつが「検索エンジン」です。探している情報を素早く見つけ出し、関連性の高いウェブページを表示してくれるため、あらゆるページを一つひとつ開いて手作業で確認する手間と時間を大幅に省けます。さらに最近の検索エンジンには「スマートボックス」と呼ばれる賢い入力欄が搭載され、天気、通貨換算、距離、フライト時刻表、地図といった情報を、クリック1〜2回で操作できるインタラクティブな形式で直接表示してくれるようになりました。 実は抱えているGoogle検索の課題 ここまでの説明を読んで、「それはGoogle検索のことだろう」と思った方も多いはずです。実際、Googleは
-
Firefox QuantumがGoogle Chromeより優れている5つの理由
ウェブブラウジングといえば、真っ先に思い浮かぶのがFirefoxとChromeという名前ではないでしょうか。10年前、この2つはまだ世の中に存在しておらず、私たちが知る唯一のブラウザはInternet Explorerでした。しかし技術の進歩とともに、FirefoxとChromeは時代の流れにうまく対応して成長を続け、一方のIEは次第にユーザーから選ばれなくなっていきました。 それ以来、Mozilla FirefoxとGoogle Chromeという2大ブラウザの間では熾烈な競争が続いています。この2つのどちらを選ぶべきかは、いつだって難しい判断でした。 そんな中、Mozillaは最新アップデ