BT

Comparando o desempenho de diversos Frameworks Web

| por Abel Avram Seguir 10 Seguidores , traduzido por Diogo Carleto Seguir 40 Seguidores em 16 jun 2014. Tempo estimado de leitura: 3 minutos |

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

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão
Comentários da comunidade

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

Dê sua opinião

Faça seu login para melhorar sua experiência com o InfoQ e ter acesso a funcionalidades exclusivas


Esqueci minha senha

Follow

Siga seus tópicos e editores favoritos

Acompanhe e seja notificados sobre as mais importantes novidades do mundo do desenvolvimento de software.

Like

Mais interação, mais personalização

Crie seu próprio feed de novidades escolhendo os tópicos e pessoas que você gostaria de acompanhar.

Notifications

Fique por dentro das novidades!

Configure as notificações e acompanhe as novidades relacionada a tópicos, conteúdos e pessoas de seu interesse

BT