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

Nossos aplicativos da Web continuam a crescer em escopo, ambição e funcionalidade. Isso é bom. No entanto, a busca incessante em direção a uma Web mais avançada está impulsionando outra tendência: a quantidade de dados baixados por cada aplicativo continua a crescer em um ritmo constante. Para oferecer um ótimo desempenho, precisamos otimizar a entrega de cada byte.

Qual é a aparência de um aplicativo da Web moderno? O HTTP Archive pode nos ajudar a responder a essa pergunta. O projeto acompanha como a Web é construída, rastreando periodicamente os sites mais populares (mais de 300.000 da lista de um milhão de principais da Alexa) 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 99º 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
Outros 282 KB 308 KB 353 KB
Total 1.054 KB 1.985 KB 3.486 KB

Os dados acima capturam a tendência de crescimento do número de bytes transferidos por download para destinos populares na Web entre janeiro de 2013 e janeiro de 2014. É claro que nem todos os locais crescem na mesma taxa ou exigem a mesma quantidade de dados. Por isso, destacamos os diferentes quantis na distribuição: 50o (mediana), 75o e 90o.

Um site médio no início de 2014 é composto por 75 solicitações que totalizam 1.054 KB de bytes transferidos, e o número total de bytes (e solicitações) cresceu em um ritmo constante ao longo do ano anterior. Isso não é tão surpreendente, mas tem implicações importantes para o desempenho. Sim, as velocidades da Internet estão aumentando, mas em diferentes países, e muitos usuários ainda estão sujeitos a limites de dados e planos limitados caros, especialmente em dispositivos móveis.

Ao contrário dos aplicativos para desktop, os aplicativos da Web não exigem um processo de instalação separado: insira o URL e vamos começar a trabalhar. Esse é um recurso importante da Web. No entanto, para que isso aconteça, muitas vezes precisamos buscar dezenas e, às vezes, centenas de recursos variados, os quais podem chegar a megabytes de dados e devem ser juntos em centenas de milissegundos para facilitar a experiência instantânea da Web que queremos.

Conseguir uma experiência instantânea na Web considerando esses requisitos não é uma tarefa simples, e é por isso que otimizar a eficiência do conteúdo é fundamental: eliminar downloads desnecessários, otimizar a codificação de transferência de cada recurso por meio de várias técnicas de compactação e aproveitar o armazenamento em cache sempre que possível para eliminar downloads redundantes.