sexta-feira, 18 de outubro de 2013

Como o Google Chrome turbina o seu acesso à web!

Google Chrome prefconnect prefetch preresolv

Recebi esta excelente apresentação do Ilya Grigorick (@igrigorick), do Google, onde ele detalha os problemas da web, em especial a latência da rede para conexão e download de dados, e o que a Google vem implementando no Google Chrome para sanar ou atenuar estes problemas e melhorar o desempenho do acesso à web. Muito interessante!

Ele começa a apresentação destacando que 69,5% do tempo gasto para acessar uma página web é devido à latência da rede, que as páginas atuais demandam dezenas de requisições, conexões e downloads, pois são muitos elementos nas páginas (a página do Yahoo demanda 52 requisições em cerca de 4 segundos!). E continua demonstrando que o tempo de espera pela rede representa o maior percentual no tempo de acesso a páginas.

Aí vem a melhor parte. O que o Google Chrome traz para resolver estas questões ?
  1. Preresolve
    • O Chrome resolve os 10 sites mais acessados ao ser iniciado. Confira a sua lista em chrome://dns/. O Chrome ainda verifica o desempenho do seu DNS. Confira em chrome://histogram/DNS (no meu Google Chromium não funcionou :(). Tempos abaixo de 30 ms são o ideal.
  2. Preconnect e Prefetch
    • Quando você começa a digitar, o Chrome tenta prevêr pra onde você quer ir, e mantém um registro da taxa de hits e misses. Se um endereço tem alta chance de hit, o navegador antecipa a resolução DNS e a conexão (preresolve e preconnect), e pode até disparar um prerender numa tab em segundo plano. Confira os detalhes em chrome://predictors/.
    • Há um "preload scanner" que vasculha o HTML em busca de elementos críticos (javascript, css, etc).
  3. Prerender
    • O prerender pode ter que ser habilitado em chrome://net-internals/#prerender, e pode ser testado em http://prerender-test.appspot.com. Uma vez ativado, as "instant pages" estarão disponíveis, significando que, quando buscar no Google, a página mais provável que você procura será pré-carregada, de forma que, ao clicar, seja aberta instantaneamente.
Em chrome://dns/ ainda é possível verificar o comportamento do preresolve e preconnect para os sub-recursos, ou seja, outros recursos acessados em razão do acesso a determinado site. O navegador mantém estatísticas destes sub-recursos para otimizar acessos futuros.

O ganho de desempenho observado fica em torno de 20%.

Por fim, a Google faz recomendações para que os desenvolvedores e designers possam codificar nas páginas parâmetros que permitam ao navegador identificar o que pode/deve ser pré-carregado.

Recomendo conferir a apresentação original do Ilya.

A evolução dos navegadores me surpreende frequentemente. Obrigado Google e Mozilla. Viva a concorrência!

2 comentários:

  1. Legal legal. Mesmo assim ainda sou fiel ao Firefox. Não consigo abandonar hehehe
    Mas uso o Chrome como um navegador secundário.

    ResponderExcluir
  2. Realmente ainda sou fã do FF , principalmente na parte do Firebug e por ele não fica coletando todos os meus dados e perfis do gmail no navegador, mas não posso dizer que o Chorme realmente está se superando a cada dia e não sabia desses atalhos para testar os acessos valeu pelas dicas!

    ResponderExcluir