Ajaxの起動を高速化するツール「Doloto」、マイクロソフトが発表

2009年9月10日

Doloto - Microsoft Research

マイクロソフトリサーチが、AjaxによるWebアプリケーションを最適化して起動速度を改善するツール「Doloto」をの公開を、9月8日から開始しました。

DolotoのWebページの解説によると、Dolotoとは「Download Time Optimizer」の略であり、またロシア語で「彫る、干渉する」という意味の単語だとのこと。発表されている資料を基にDolotoがどのようなツールなのか、紹介していきましょう。

JavaScriptのロードを最適化するDoloto

最近の大規模なWebアプリケーション、例えばGMailやGoogle MapなどのAjaxで開発されたアプリケーションは、Webページを呼び出した時点で大量のJavaScriptコードをサーバからWebブラウザへとダウンロードするため、起動に時間がかかるようになってきています。

DolotoはこうしたWebアプリケーションを解析し、大規模なJavaScriptを分割します。そしてWebアプリケーションの起動に最低限必要なJavaScriptコードだけを最初にロードし、それ以外の部分を後からバックグラウンドで、もしくはその機能が呼び出された時点でロードするように変更することで、Webアプリケーションを素早く利用できるように最適化してくれます。

マイクロソフトによると、これによってWebアプリケーションの起動時に必要なJavaScriptのダウンロードサイズが平均で50%程度削減そうです。以下に、マイクロソフトによるテスト結果のグラフを示します。

fig 主要なAjaxアプリケーションの起動時にダウンロードされるJavaScriptの大きさを、オリジナルとDolotoで最適化した場合の比較。おおむね半分程度になっている

ネットワークの帯域幅にもよりますが、ダウンロードサイズの削減によりWebアプリケーションの起動時間が20%から40%減少するとしています。

ローカルプロキシとして動作し、プロファイル分析を実行

Dolotoは.NET Framework 3.5ベースで開発されたローカルプロキシとして動作するツールです。Dolotoが動作している環境でWebアプリケーションを動作させると、Dolotoが自動的にプロファイリングを開始します。

プロファイリング情報を基に、Webアプリケーションでロードされ呼び出されたJavaScriptの関数が、役割別にまとめられていくつかの「Cluster」に分類されます。「Cluster」が、ダウンロードされるJavaScriptの新たなまとまりとなります。

プロファイリングが終了すると、最適化したHTMLファイル、JavaScriptファイルなどが、指定したディレクトリに自動的に生成されます。生成されたファイルをWebサーバにアップロードし以前のファイルを置き換えることによって、最適化されたWebアプリケーションを実行することができるようになります(念のため、生成されたファイルのチェックをマイクロソフトは勧めています)。

JavaScriptの読み込みをできるだけ遅らせるテクニックは「Splitting the Initial Payload」と呼ばれており、Ajaxプログラミングのテクニックとして用いられてきました。Dolotoはこのテクニックを自動的に実現してくれるツールです。Ajaxプログラマの方はいちど試してみる価値があるのではないでしょうか。

関連記事 on Publickey

参考記事 on the Web

あわせて読みたい

JavaScript Web技術 Ajax Microsoft 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本