W3C-Arbeitsgruppe „Web Performance“: Kontinuierliche Investition in die Leistung

Die Web Performance-Arbeitsgruppe des W3C hat am Donnerstag, den 8. November 2012 den W3C Workshop on Performance veranstaltet. Ziel war der Austausch über aktuelle Herausforderungen und neue Ideen zum Thema Leistung. Unter den 45 Teilnehmern aus 21 Unternehmen waren die meisten Browserhersteller (Microsoft, Google und Mozilla), Hardwareunternehmen (Intel, Qualcomm, Nokia, Motorola), Netzwerkausrüster (Cisco, Akamai, F5) sowie führende Webanbieter (GMail, Google Search, Bing, NetFlix, LinkedIn, Zynga u. a.) vertreten. Mehr zu den Präsentationen und Diskussionen während des Workshops finden Sie hier.

Entscheidend für die Verbesserung der Webleistung sind Möglichkeiten zur präzisen Messung der Leistungsmerkmale von Webanwendungen und die Entwicklung von CPU- und leistungseffizienten Anwendungen. Die W3C-Arbeitsgruppe Web Performance hat sich in der kürzlich abgeschlossenen zweiten Arbeitsphase auf die Umsetzung dieser Ziele konzentriert. In weniger als zwei Jahren hat die Arbeitsgruppe die Standardisierung rasch vorangetrieben. Folgende acht Schnittstellen kommen in modernen HTML5-fähige Webbrowsern zum Einsatz: Navigation Timing, Resource Timing, User Timing, Performance Timeline, Page Visibility, Timing Control for script-based Animations, High Resolution Time und Efficient Script Yielding. Internet Explorer 10 ist der erste Browser, der alle acht neuen APIs unterstützt.

Die Arbeitsgruppe konzentriert sich seither auf die Erfassung von Daten, um Schwerpunkte für die dritte Arbeitsphase zu ermitteln. Zusätzlich zum Workshop on Performance hat die Arbeitsgruppe Leistungsexperten zu den wöchentlichen Telefonkonferenzen eingeladen und so einen Überblick über die Ideen in der Community gewonnen.

Auf Basis der Ergebnisse aus den letzten Monaten entschied sich die Web Performance-Arbeitsgruppe dafür, sich in der dritten Arbeitsphase auf folgende Bereiche zu konzentrieren:

  • Timing-Metriken
    Die Arbeitsgruppe wird die Timing-Schnittstellen Navigation Timing, Resource Timing, User Timing und Performance Timeline weiter verbessern. Beispielsweise überlegen wir, im Rahmen der Timing-Schnittstellen Unterstützung für Web-Worker bereitzustellen und Informationen zum Umfang von Videobytes in Resource Timing zu integrieren.
  • Efficient Script Yielding
    Die Arbeitsgruppe wird CPU- und leistungseffiziente APIs weiter verbessern, darunter die „setImmediate“-API, die in der Efficient Script Yielding-Spezifikation definiert wird.
  • Prerender
    Die Arbeitsgruppe wird die „Prerender“-Funktion standardisieren. Dadurch lassen sich Linkziele quasi „unmittelbar“ anzeigen, wenn die hohe Wahrscheinlichkeit besteht, dass der Benutzer eine URL aufruft.  Dies funktioniert folgendermaßen: Wenn der „Prerender“-Linktyp vorhanden ist oder ein Benutzer einen Link mit hoher Wahrscheinlichkeit verwenden wird, lädt der Browser die entsprechende Webseite selbstständig in einer ausgeblendeten Registerkarte. Sobald der Benutzer auf den Link klickt, blendet der Browser die Registerkarte ein. Aus Sicht der Benutzers ist das Linkziel somit unmittelbar vorhanden.
  • Ressourcenprioritäten
    Moderne Browser laden Ressourcen in der Reihenfolge herunter, in der die entsprechende Seite voraussichtlich am schnellsten dargestellt wird. Jedoch möchten Entwickler in einigen Fällen bestimmte Ressourcen bevorzugt behandeln. Beispielsweise kommt dem Herunterladen von Bildern über dem unteren Browserrand eine höhere Priorität zu als Bildern unter dem Browserrand. Entwickler können die Download-Priorität im Markup mit den Attributen „defer“ und „async“ zwar bedingt beeinflussen, allerdings sind diese Konzepte nur auf wenige Ressourcen anwendbar. Die Arbeitsgruppe bezieht daher auch interoperable Möglichkeiten für Entwickler in Ihre Tätigkeit ein, mit denen sich die Download-Priorität von Browsern besser steuern lässt.
  • Diagnoseschnittstellen
    Entwickler möchten selbstverständlich erfahren, wie sie schnellere und weniger fehleranfällige Webanwendungen erstellen können. Die Arbeitsgruppe bezieht daher interoperable Möglichkeiten in ihre Tätigkeit ein, damit Entwickler Browserdiagnoseinformationen zu Webanwendungen abrufen können. Beispielsweise können Entwickler mithilfe dieser Schnittstellen ermitteln, wo unnötig Speicher belegt wird und welche Fehler bei der Nutzung ihrer Webanwendungen auftreten.
  • Beacon
    Moderne Analyseskripts werden in einer Schleife ausgeführt, um sicherzustellen, dass Analysedaten an den Webserver gesendet wurden. Dies verhindert, dass die aktuelle Seite entladen wird. Dadurch wird das Aufrufen der nächsten Seite verzögert und der Benutzer muss warten. Die Arbeitsgruppe bezieht daher interoperable Möglichkeiten in ihre Tätigkeit ein, die Entwicklern eine asynchrone Übertragung von Daten vom Browser zum Webserver ermöglichen. Der Browser garantiert hierbei, dass die Daten gesendet werden, und verhindert das oben beschriebene Verhalten.
  • Anzeigeleistung
    Selbstverständlich interessieren sich Entwickler für die Leistung ihrer Spiele und Animationen.
    Die Arbeitsgruppe stellt Entwicklern interoperable Möglichkeiten bereit, die Framerate und den Datendurchsatz des Anzeigetyps abzurufen.

Die Arbeitsgruppe ist ein großartiges Beispiel dafür, wie schnell sich neue Ideen in interoperablen Standards umsetzen lassen, auf die sich Entwickler in modernen HTML5-fähigen Browsern verlassen können. Gemeinsam mit führenden Mitgliedern aus der Branche und der Community, die an der Arbeitsgruppe beteiligt sind, hoffen wir auf rasche Fortschritte bei interoperablen Standards, von denen Entwickler und alle Webanwender profitieren.

Jatinder Mann, Internet Explorer, Program Manager