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!

Christian Guerreiro

Professor por vocação, blogueiro e servidor público por opção, amante da tecnologia e viciado em informação.


Ensino a distância em Tecnologia da Informação: Virtualização com VMware, Big Data com Hadoop, Certificação ITIL 2011 Foundations e muito mais.


Suporte o Tecnologia que Interessa!

Você acha que as informações compartilhadas aqui são úteis?
Então me ajude a produzir ainda mais e melhores conteúdos!


É muito fácil. Basta divulgar nossos treinamentos pra alguém que conheça!


E se for de Salvador, podemos estruturar um curso presencial para sua empresa!

Eu vou ficar muito grato (e quem fizer os curso também :)!