Desempenho na Web do W3C: Investimentos contínuos no desempenho

O grupo de trabalho de desempenho na Web do W3C promoveu o workshop sobre desempenho do W3C na quinta-feira, 8 de novembro de 2012. A meta era ouvir os desafios atuais e as propostas de novas ideias sobre desempenho a serem consideradas pelo grupo de trabalho. Houve 45 participantes de 21 organizações, incluindo a maioria dos fabricantes de navegadores (Microsoft, Google e Mozilla), organizações de hardware (Intel, Qualcomm, Nokia, Motorola), organizações de rede (Cisco, Akamai, F5), e as principais propriedades da Web (GMail, Pesquisa do Google, Bing, NetFlix, LinkedIn, Zynga e muito mais). Os detalhes das apresentações e discussões do workshop encontram-se neste relatório.

Oferece a capacidade de medir de forma precisa as características de desempenho de aplicativos Web e criar aplicativos com eficiência no consumo de energia e da CPU é fundamental para o desempenho na Web. O grupo de trabalho de desempenho na Web do W3C trabalhou para atingir essas metas e recentemente concluiu o segundo período de licença. Em dois anos, o grupo de trabalho rapidamente se padronizou, e os navegadores habilitados para HTML5 modernos implementaram estas oito interfaces: Tempo de navegação, Tempo de recurso, Tempo do usuário, Linha do tempo do desempenho, Visibilidade da página, Controle de tempo para animações baseadas em script, Tempo de alta resolução e Concessão de script eficiente. O Internet Explorer 10 é o primeiro navegador a dar suporte a todas as oito interfaces dessas novas APIs.

O grupo de trabalho se concentrou desde então em reunir dados para compreender quais áreas deveriam receber atenção no terceiro período de licença. Além do workshop sobre desempenho, o grupo de trabalho convidou especialistas em desempenho para suas chamadas em conferência semanais e pesquisou amplamente as ideias da comunidade relacionada ao desempenho.

Com base em todos os dados reunidos nesses últimos meses, o grupo de trabalho de desempenho na Web decidiu se concentrar nestas áreas no terceiro período de licença:

  • Métrica de tempo
    O grupo de trabalho continuará aperfeiçoando as interfaces de tempo: Tempo de navegação, Tempo de recurso, Tempo de usuário e Linha do tempo do desempenho. Por exemplo, consideraremos o suporte aos Web workers nas interfaces de Tempo e a inclusão de informações em intervalos de bytes de vídeo no Tempo de recurso.
  • Concessão de script eficiente
    O grupo de trabalho continuará aperfeiçoando as APIs que têm eficiência no consumo de energia e da CPU, como a setImmediate definida na especificação Concessão de script eficiente.
  • Prerender
    O grupo de trabalho padronizará o recurso prerender que permite que as navegações apareçam quase "instantaneamente" nos casos em que o navegador observa uma grande probabilidade de o usuário visitar uma URL.  Esse recurso funcionaria desta forma: o navegador acessa de forma proativa uma página da Web em uma guia oculta, quando vê o tipo de vínculo "prerender" ou observa uma grande probabilidade de o usuário visitar aquele link. Quando o usuário realmente visita esse link, o navegador torna a guia oculta visível, dando a impressão de que houve uma navegação instantânea.
  • Prioridades de recursos
    Hoje os navegadores baixam os recursos na ordem de prioridade que acreditam ser a mais eficiente para acelerar o carregamento da página. Entretanto, os desenvolvedores podem desejar priorizar alguns dos recursos. Por exemplo, o download de imagens acima da partição pode ter prioridade sobre o das imagens abaixo da partição. Apesar da possibilidade de os desenvolvedores darem algumas dicas para o navegador quanto à prioridade do download, como usar os atributos “defer” e “async” na marcação, esses conceitos não incluem a maioria dos recursos. Para ajudar o navegador a priorizar os recursos de download, o grupo de trabalho está expandindo a licença para incluir meios interoperáveis para que os desenvolvedores deem dicas ao navegador sobre a prioridade de download de recursos.
  • Interfaces de diagnósticos
    Os desenvolvedores desejam aprender a tornar seus aplicativos Web mais rápidos e menos propensos a erros. O grupo de trabalho está expandindo a licença para incluir meios interoperáveis para que os desenvolvedores recebam informações de diagnóstico em seus aplicativos Web. Por exemplo, usando essas interfaces, um desenvolvedor poderia compreender onde está havendo desperdício de memória ou quais erros os usuários estão encontrando em seus aplicativos Web.
  • Beacon
    Hoje, os scripts de análise impedem o carregamento da página atual pela execução em loop a fim de confirmar se os dados de análise foram enviados para um servidor Web. Esse comportamento atrasa a navegação para a próxima página, fazendo com que o usuário considere o desempenho fraco. Para ajudar os desenvolvedores a evitar esse padrão, o grupo de trabalho está expandindo a licença para incluir meios interoperáveis de os desenvolvedores transferirem dados de forma assíncrona do navegador para um servidor Web, com a garantia do navegador de que os dados serão enviados em algum momento.
  • Desempenho de exibição
    Os desenvolvedores têm interesse de compreender o desempenho de seus jogos e animações.
    O grupo de trabalho está expandindo a licença para incluir meios interoperáveis para que os desenvolvedores recebam taxa de quadros e produtividade do tipo de exibição de informações.

Esse grupo de trabalho é um ótimo exemplo de quão rapidamente novas ideias podem se tornar padrões interoperáveis em que os desenvolvedores podem se basear em navegadores modernos com HTML5 habilitado. Junto com os líderes do setor e da comunidade que participam do grupo de trabalho, esperamos continuar fazendo rápidos avanços nos padrões interoperáveis que beneficiarão os desenvolvedores e todos que usam a Web.

Jatinder Mann, Internet Explorer, gerente de programa