Chromeブラウザ、「Script streaming」と「Code caching」の2つのテクニックで、さらにWebページ読み込み時間を短縮へ

2015年3月20日

Chromium Blogで、「New JavaScript techniques for rapid page loads」(迅速なページロードのための新たなJavaScriptテクニック)というポストが投稿され、Webページのロードをさらに高速化する「Script streaming」と「Code caching」という2つのテクニックが紹介されています。

この2つのテクニックは、最新バージョンとなる41と次のバージョンの42でそれぞれ導入されるとのことです。

Chromium Blog: New JavaScript techniques for rapid page loads

別スレッドでのパースにより高速化

「Script streaming」は、async/defer属性が付いたJavaScriptについてはダウンロードと並行して別スレッドでパースを実行することで、ページのロードを高速化すると説明されています。下記はブログ記事から引用。

Starting in version 41, Chrome parses async and deferred scripts on a separate thread as soon as the download has begun. This means that parsing can complete just milliseconds after the download has finished, and results in pages loading as much as 10% faster. It's particularly effective on large scripts and slow network connections.

バージョン41からは、asyncとdeferredのスクリプトではダウンロードの開始と共に別のスレッドでパースを行う。つまりこれは、ダウンロードが完了した数ミリ秒後にはパースも完了するということだ。その結果、ページのローディングは10%程度速くなるだろう。これは特に、大規模なスクリプトと遅いネットワーク回線において効果的だ。

async/deferは、実行のタイミングを非同期にするなどでページの読み込みを高速化するものですが、それをWebブラウザ側でさらに効率化する実装のようですね。

コンパイル済みのコードをキャッシュすることで高速化

「Code caching」は、コンパイル済みのJavaScriptコードを高度なキャッシュによって保持することで、ページのロードを高速化するとのことです。

Chrome 42 introduces an advanced technique of storing a local copy of the compiled code, so that when the user returns to the page the downloading, parsing, and compiling steps can all be skipped. Across all page loads, this allows Chrome to avoid about 40% of compile time and saves precious battery on mobile devices.

Chrome 42ではコンパイル済みコードのローカルコピーの保存テクニックを拡張し、いちど表示したページにユーザーが戻ってきた場合、(そのページのJavaScriptの)ダウンロードとパースとコンパイルはすべてスキップできる。あらゆるページのロードにおいて、これはChromeは40%ものコンパイル時間を削減し、モバイルデバイスの貴重なバッテリの消費を抑えることになる。

同じWebページを複数回訪問することはよくあることですから、この実装でそのときのWebページの表示が高速化されるのであれば、体感的にも高速化が実感できるぐらいになるのではと期待してしまいます。

あわせて読みたい

JavaScript Web技術 Chrome Webブラウザ




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本