Web パフォーマンス API が驚異的な速さで W3C の勧告候補に昇格しました

今回の記事では、W3C Web パフォーマンス ワーキング グループ (英語) が策定した仕様が、新たに 3 つ W3C の勧告候補に移行したことをお知らせします。Web の高速化を実現するためには Web アプリケーションのパフォーマンス特性を正確に計測することは必須課題であり、開発者は、基盤ハードウェアの利用を効率してのパフォーマンスを向上する必要があります。これらの目標に 2 年にわたって取り組んできたのが、Microsoft、Google、Mozilla、Intel、Facebook などが参加する Web パフォーマンス ワーキング グループです。今回の決定は、業界とコミュニティが W3C のもとに結集することで何が成し遂げられるかを示す、すばらしい事例となりました。

開発者は、Navigation Timing (英語)、Resource Timing (英語)、User Timing (英語)、そして Performance Timeline の各仕様を活用して Web アプリケーションのパフォーマンスを正確に測定できます。最初の 3 つの仕様はそれぞれ、ドキュメントのナビゲーション、ページ上のリソース、開発者スクリプトに関する情報を開発者に提供します。この時間情報を取得するための統合インターフェイスを定義するのが Performance Timeline 仕様です。これらの API の登場によって、開発者はサイトのパフォーマンスを正確に今までにない精度で測定できるようになりました。

これらのパフォーマンス指標を可能な限り高い精度で測定するために、時間精度をミリ秒以下で定義する High Resolution Time (英語) 仕様が策定されています。このインターフェイスは、パフォーマンス指標の正確な測定というメリットを提供するのはもちろん、フレーム レートの計算やアニメーション/オーディオ キューの同期も効率化します。High Resolution Time によって開発者は操作をミリ秒以下の精度で測定できるようになりました。

Page Visibility (英語)、スクリプト ベース アニメーションのタイミング制御 (英語)、Efficient Script Yielding の各仕様は、CPU 効率と電力効率に優れた Web アプリケーションの開発をサポートします。Page Visibility API によって、ページが閲覧者に見えているかどうかについて最新の状態をプログラム的に判定できるようになります。開発者はこのデータを使用して、バッググラウンドのタブにあるページのアクティビティの負荷を下げるよう調整するなど、CPU と電力効率化に関する判断を下せるようになります。スクリプト ベース アニメーションのタイミング制御に関する仕様が提供する requestAnimationFrame API は、より効率的な JavaScript アニメーションの開発を可能にします。最後の Efficient Script Yielding 仕様で利用できる setImmediate API を使うと、ユーザー エージェントに対する制御フローの生成を効率化して、コールバックを瞬時に受け取れるようになり、CPU の利用効率を高めることができます。

コードを一度記述すればすべてのブラウザーで相互運用的に動作させられる。このような体験を Web 開発者に保証するため、Web パフォーマンス ワーキング グループはこれらの API の標準化に 2 年にわたり地道に取り組んできました。以下の表は、同ワーキング グループが現在編集しているすべての仕様の成熟段階です。

仕様 編集者草案 公開草案初版 最終草案 最終草案 2 勧告候補 勧告案 勧告
Navigation Timing 2010 年 9 月 2010 年 10 月 2011 年 1 月 2011 年 2 月 2012 年 7 月
Resource Timing 2010 年 9 月 2011 年 5 月 2011 年 6 月 2012 年 5 月
User Timing 2010 年 10 月 2011 年 8 月 2011 年 8 月 2012 年 5 月 2012 年 7 月
Performance Timeline 2011 年 7 月 2011 年 8 月 2011 年 8 月 2012 年 5 月 2012 年 7 月
High Resolution Time 2012 年 3 月 2012 年 3 月 2012 年 3 月 2012 年 5 月
Page Visibility 2010 年 4 月 2011 年 6 月 2011 年 7 月 2012 年 7 月
Display Paint Notifications 2011 年 5 月 2011 年 6 月 2012 年 2 月
Efficient Script Yielding 2011 年 6 月
Navigation Timing 2 (新規) 2012 年 4 月 2012 年 5 月

W3C Web パフォーマンス仕様のステータスを示す表

今月は Navigation Timing 仕様が勧告案 (PR: Proposed Recommendation) (英語) として公開されました。標準化もこの段階までくると、Web 標準が正式な W3C 勧告として公開されるのを後 1 段階待つだけとなります。またこのインターフェイスは、Internet Explorer 9、Chrome 6、Firefox 7 でのサポート以来、さまざまなブラウザーに幅広く採用されています。さらに Web パフォーマンス ワーキング グループは、同仕様の次期バージョンである Navigation Timing 2 のフィードバック収集と編集作業を最近開始しました。

今月はさらに User Timing、Performance Timeline、Page Visibility の各仕様が勧告候補 (CR: Candidate Recommendation) (英語) として公開されました。PR の直前であるこの標準化段階は、この仕様が、幅広いレビューを経た Web パフォーマンス ワーキング グループの技術要件を満たすものであると W3C が認識していることを示しています。Resource Timing と共にちょうど 2 か月前に CR として公開された High Resolution は、わずか 3 か月で編集者草案から CR への移行を達成しました。

今回の API の紹介を通して、新しいアイデアが驚くべき速さで相互運用可能な標準として確立されているということが十分おわかりいただけたと思います。開発者はこれらの標準を HTML 対応の最新ブラウザーで活用できます。これらの API の設計にかかわった W3C Web パフォーマンス ワーキング グループのすべてのメンバー、そして相互運用性の重要性を理解し、これらの API の実装を開始したその他のブラウザー ベンダー、すべての皆さんに感謝いたします。

—IE パフォーマンス担当プログラム マネージャー、Jatinder Mann