Otimização de eficiência de conteúdo

Nossos aplicativos da Web continuam crescendo em escopo, ambição e funcionalidade, e isso é bom. No entanto, a marcha incessante em direção a uma Web mais rica está impulsionando outra tendência: a quantidade de dados transferidos por download por cada aplicativo continua aumentando a um ritmo constante. Para oferecer um bom desempenho, precisamos otimizar o envio de cada byte.

Como é um aplicativo da Web moderno? O HTTP Archive pode ajudar a responder a essa pergunta. O projeto rastreia como a Web é construída rastreando periodicamente os sites mais populares (mais de 300.000 da lista Alexa Top 1M) e registrando e agregando análises sobre o número de recursos, tipos de conteúdo e outros metadados para cada destino individual.

Tendências do HTTP Archive

50º percentil 75º percentil 90º percentil
HTML 13 KB 26 KB 54 KB
Imagens 528 KB 1.213 KB 2.384 KB
JavaScript 207 KB 385 KB 587 KB
CSS 24 KB 53 KB 108 KB
Outro 282 KB 308 KB 353 KB
Total 1.054 KB 1.985 KB 3.486 KB

Os dados acima mostram a tendência de crescimento do número de bytes transferidos para destinos populares na Web entre janeiro de 2013 e janeiro de 2014. É claro que nem todo site cresce na mesma taxa ou exige a mesma quantidade de dados. Por isso, estamos destacando os diferentes quartis na distribuição: 50º (mediana), 75º e 90º.

Um site mediano no início de 2014 é composto por 75 solicitações que somam 1.054 KB de bytes transferidos, e o número total de bytes (e solicitações) cresceu de forma constante ao longo do ano anterior. Isso não é uma surpresa, mas tem implicações importantes para a performance: sim, as velocidades de Internet estão aumentando, mas em taxas diferentes em diferentes países, e muitos usuários ainda estão sujeitos a limites de dados e planos caros, especialmente em dispositivos móveis.

Ao contrário dos aplicativos para computador, os aplicativos da Web não exigem um processo de instalação separado: basta inserir o URL e pronto. Esse é um recurso importante da Web. No entanto, para que isso aconteça, muitas vezes precisamos buscar dezenas, e às vezes centenas, de vários recursos, que podem somar megabytes de dados e precisam se reunir em centenas de milissegundos para facilitar a experiência da Web instantânea que queremos.

Alcançar uma experiência da Web instantânea com base nesses requisitos não é uma tarefa fácil. Por isso, é fundamental otimizar a eficiência do conteúdo: eliminar downloads desnecessários, otimizar a codificação de transferência de cada recurso com várias técnicas de compactação e aproveitar o armazenamento em cache sempre que possível para eliminar downloads redundantes.