BT

Disseminando conhecimento e inovação em desenvolvimento de software corporativo.

Contribuir

Tópicos

Escolha a região

Início Notícias Comparando o desempenho de diversos Frameworks Web

Comparando o desempenho de diversos Frameworks Web

Favoritos

A TechEmpower vem executando benchmarks desde o ano passado, tentando medir e comparar o desempenho dos frameworks web. Para esses benchmarks o termo "framework" é usado vagamente, incluindo plataformas e micro-frameworks.

Os resultados do primeiro benchmark foram publicados em março de 2013, e os testes foram conduzidos usando 2 configurações de hardware: duas instâncias do Amazon EC2 m1.large e dois Intel Sandy Bridge Core i7-2600K com 8GB de RAM, ambas as configurações usando Gbit Ethernet. Os frameworks tinham que responder com um simples {"message" : "Hello, World!"}. A tabela a seguir apresenta um extrato dos resultados, mostrando os 10 frameworks web mais comuns dos 24 testados, junto com seus resultados medidos em requisições por segundo (RPS) e percentual do melhor resultado.

image

Durante o ano, o benchmark evoluiu para cobrir 119 frameworks, incluindo vários tipos de consultas e respostas e executando em uma configuração de hardware adicional: dois Dell R720xd Dual-Xeon E5 v2 com 32GB de RAM cada e 10 Gbit Ethernet.

A seguir são apresentados os extratos da 9ª rodada do benchmarking que foi publicada recentemente, desta vez foram realizados os testes em três configurações de hardware diferentes:

image

Algumas observações:

Enquanto o hardware de alta qualidade certamente tem um desempenho melhor do que o inferior em termos de RPS, há uma grande mudança na hierarquia para os melhores frameworks, como é o caso para o Xeon E5 vs o Intel I7. Isto pode ser relacionado ao fato de que há muito em mais de 90% para a Intel I7, a TechEmpower atribui isso a um gargalo gerado pela Ethernet 1Gbit usada na respectiva configuração:

Desde a primeira rodada, sabíamos que os frameworks de alto desempenho tinham sido limitados pela nossa rede gigabit… Com uma ampla largura de banda de rede, os frameworks de alto desempenho são ainda mais diferenciados.

O Google Go é o primeiro no Intel I7, mas tem a maior queda de desempenho no Xeon E5 apesar de usar todos os núcleos, enfatizando a importância do ajuste de desempenho para certos tipos de arquiteturas de hardware, como notado pela TechEmpower:

O ambiente de teste de pico [Xeon E5] utiliza servidores com 40 núcleos HT através de dois processadores Xeon E5, e os resultados mostram o quão bem cada framework escala em alto paralelismo em um único nó do servidor.

Claro que outras variáveis estão em jogo, como significantemente mais núcleos de processador HT (40 versus 8, para os testes no I7) e uma arquitetura de sistema diferente, NUMA.

O Amazon EC2 M1.large é muito insatisfatório comparando com outras configurações, fazendo pensar se a relação preço/desempenho ainda é atraente para instâncias de computação na nuvem.

A maioria dos frameworks são baseados no Linux. Nenhum framework Windows foi testado no EC2 ou I7. O melhor framework Windows executou com 18,6% do líder no E5. O HHVM do Facebook também não aparece no EC2, mas é provável que HHVM seja ajustado de forma diferente quando executado no hardware do Facebook.

Alguns dos frameworks mais conhecidos tem desempenho muito ruim em todas as configurações usadas, como o Grails, Spring, Django e Rails.

O desempenho do recém-lançado 1.3 Dart dobrou e deve estar coerente com Node.js, mas ele não aparece no benchmark porque foi usado o Dart 1.2 nesta rodada. Isto pode ser aplicado para outros frameworks que melhoraram a latência e os resultados dessa melhora serão mostrados nos futuros benchmarks.

Como acontecem com outros benchmarks de desempenho, os resultados são discutíveis uma vez que dependem do hardware, rede e configurações de sistemas. A TechEmpower convida os interessados a verificar os resultados para seus frameworks favoritos e dar um fork do código no GitHub.

O benchmark inclui explicações detalhadas sobre como são realizados, as configurações de hardware e os componentes de cada framework: a linguagem, servidor web, OS, entre outros.

Avalie esse artigo

Relevância
Estilo/Redação

Conteúdo educacional

BT