resultados do estudo sobre o desempenho de diferentes métodos de extração de coleções de recursos, usando protocolos HTTP/1.1, HTTP/2 e HTTP/2 + Server Push para se comunicar com o servidor. O estudo também avaliou o impacto do cache do navegador nas solicitações de dados e a manipulação de recursos a nível da lógica do aplicativo (agregando recursos em um único bloco JSON).
Os testes de desempenho de 25 solicitações mostraram resultados, em geral, previsíveis — um atraso notável na solicitação via HTTP/1.1 com cache vazio e a entrega de recursos em um único bloco (testes com a etiqueta "compound"). O desempenho do Firefox e do Chrome estava aproximadamente no mesmo nível, mas a presença de dados no cache não resultou no aumento de eficácia esperado.
No entanto, no teste de processamento de 500 solicitações, um atraso notável do Chrome em relação ao Firefox surgiu ao transmitir um grande número de solicitações, e um atraso do Firefox em relação ao Chrome ao aplicar o mecanismo Server Push e no cenário de uso do HTTP/2 com a maior parte dos dados no cache do navegador. O Chrome demonstrou uma operação mais eficiente com o cache, enquanto o Firefox teve um processamento mais eficiente de solicitações externas.
Como resultado dos testes, concluiu-se que o HTTP/2 permite processar de forma bastante eficaz solicitações individuais de uma grande coleção de recursos. As diferenças de desempenho entre os esquemas simples de entrega separada de recursos e os métodos em que os recursos são agregados em um único bloco não são tão significativas para justificar uma complexidade considerável na lógica de processamento do lado do aplicativo e servidor. A agregação só faz sentido em situações onde o desempenho é a maior prioridade. Quando a simplificação da lógica e uma API simples são mais importantes, faz sentido usar o processamento separado de recursos.
Outra conclusão é que o cache do navegador, ao usar HTTP/2, não tem um impacto significativo no desempenho do processamento de requisições (a execução completa de 501 requisições foi 1,2 vezes mais lenta do que a execução de 51 requisições com 90% do cache preenchido no Firefox e 2,3 vezes mais lenta no Chrome). O uso do Server Push não mostrou benefícios significativos no Firefox, mas foi eficaz ao carregar um grande número de recursos no Chrome. Os autores do estudo também observaram que a otimização da parte do servidor tem um impacto mais significativo no desempenho do que a otimização do código do cliente executado no navegador.
Fonte: opennet.ru
