Performances Web du W3C : poursuite de l'amélioration des performances

Le groupe de travail Web Performance du W3C a récemment organisé un atelier consacré aux performances du W3C le jeudi 8 novembre 2012. L'objectif était d'exposer les défis actuels et de proposer de nouvelles idées dans le domaine des performances. Étaient présents 45 participants provenant de 21 organisations, notamment la plupart des fabricants de navigateurs (Microsoft, Google et Mozilla), des fabricants de matériels (Intel, Qualcomm, Nokia et Motorola), des sociétés orientées réseau (Cisco, Akamai et F5), et des plateformes Web majeures (GMail, Google Search, Bing, NetFlix, LinkedIn, Zynga et bien plus). Vous trouverez dans ce rapport plus d'informations sur les présentations et les discussions de l'atelier.

Permettre de mesurer avec précision les caractéristiques de performances des applications Web et de créer des applications efficaces sur les plans de la consommation électrique et de la consommation des ressources processeur est essentiel pour les performances Web. Le groupe de travail Web Performance du W3C s'est attaché à atteindre ces objectifs au cours de sa deuxième mission qui s'est achevée récemment. En moins de deux ans, le groupe de travail a rapidement normalisé ces huit interfaces, qui sont maintenant implémentées dans les navigateurs Web HTML5 modernes : Navigation Timing, Resource Timing, User Timing, Performance Timeline, Page Visibility, Timing control for script-based animations, High Resolution Time et Efficient Script Yielding. Internet Explorer 10 est le premier navigateur à prendre en charge l'ensemble de ces huit nouvelles API.

Le groupe de travail s'est depuis consacré à la collecte de données visant à identifier les domaines sur lesquels concentrer sa troisième mission. En plus de l'atelier sur les performances, le groupe de travail a invité des experts en matière de performances à participer à ses réunions téléphoniques hebdomadaires et a passé en revue les idées de la communauté.

D'après les données recueillies au cours des derniers mois, le groupe de travail Web Performance a décidé de concentrer la troisième mission sur les domaines suivants :

  • Mesures de temps
    Le groupe de travail continuera à améliorer les interfaces de temps (Timing) Navigation Timing, Resource Timing, User Timing et Performance Timeline. Nous envisagerons par exemple la prise en charge du traitement Web dans les interfaces Timing et l'inclusion des informations sur les plages d'octets vidéo dans l'interface Resource Timing.
  • Efficient Script Yielding
    Le groupe de travail continuera à améliorer les API efficaces sur les plans de la consommation électrique et de la consommation des ressources processeur, telles que l'API setImmediate définie dans la spécification Efficient Script Yielding.
  • Pré-rendu
    Le groupe de travail normalisera la fonctionnalité de pré-rendu afin que les navigations apparaissent presque « instantanément » lorsque le navigateur est quasiment certain qu'un utilisateur consultera une URL.  Cela fonctionnera de la manière suivante : le navigateur accédera de façon proactive à une page Web dans un onglet masqué lorsqu'il verra le type de lien « pré-rendu » ou lorsqu'il sera quasiment certain que l'utilisateur consultera ce lien. Lorsque l'utilisateur accède effectivement à ce lien, le navigateur rendra visible l'onglet masqué, ce qui donnera une impression de navigation instantanée.
  • Priorité des ressources
    De nos jours, les navigateurs téléchargent les ressources dans l'ordre de priorité qu'ils pensent être le plus efficace pour favoriser le chargement rapide des pages. Il peut toutefois arriver que les développeurs souhaitent privilégier certaines ressources par rapport à d'autres. Par exemple, télécharger les images qui se trouvent au-dessus du trait peut se révéler plus important que télécharger celles qui se trouvent dessous. Bien que les développeurs puissent donner certaines indications au navigateur sur la priorité du téléchargement, en utilisant par exemple les attributs « defer » et « async dans le balisage, ces concepts n'incluent pas la plupart des ressources. Pour aider le navigateur à hiérarchiser le téléchargement des ressources, le groupe de travail étend la mission afin d'inclure des méthodes interopérables qui permettent aux développeurs de donner au navigateur des indications sur la priorité de téléchargement des ressources.
  • Interfaces de diagnostic
    Les développeurs souhaitent savoir comment rendre leurs applications Web plus rapides et plus fiables. Le groupe de travail étend la mission afin d'inclure des méthodes interopérables qui permettent aux développeurs d'effectuer des diagnostics sur leurs applications Web. L'utilisation de ces interfaces peut par exemple permettre à un développeur de localiser la source des pertes de mémoire et d'identifier les erreurs rencontrées par les utilisateurs sur leurs applications Web.
  • Balise
    Aujourd'hui, les scripts analytiques empêchent le déchargement de la page actuelle en s'exécutant en boucle afin de vérifier que les données d'analyse ont été envoyées à un serveur Web. Ce comportement entraîne un retard de la navigation sur la page suivante, ce qui donne à l'utilisateur une impression de performances médiocres. Pour aider les développeurs à éviter ce modèle, le groupe de travail étend la mission afin d'inclure des méthodes interopérables qui permettent aux développeurs de transférer de manière asynchrone des données du navigateur à un serveur Web, avec une garantie de la part du navigateur que les données seront finalement envoyées.
  • Performances d'affichage
    Pour les développeurs, il est important de comprendre les performances de leurs jeux et animations.
    Le groupe de travail étend la mission afin d'inclure des méthodes interopérables qui permettent aux développeurs de connaître le débit et le nombre d'images par seconde du type d'affichage des informations.

Ce groupe de travail montre bien à quelle vitesse les idées innovantes peuvent devenir des normes interopérables sur lesquelles les développeurs peuvent s'appuyer au sein des navigateurs HTML5 modernes. Aux côtés de grands acteurs du secteur et de responsables de la communauté qui ont participé au groupe de travail, nous espérons continuer à progresser rapidement dans le domaine des normes interopérables pour le bénéfice des développeurs et de quiconque utilise le Web.

Jatinder Mann, Internet Explorer, Chef de projet