O InfoQ publicou em 2014 os resultados do benchmark realizado pela empresa TechEmpower, de diversos frameworks web, inclusive plataformas web e micro frameworks. Um ano depois, esta empresa publicou mais um conjunto de resultados que destaca significativas mudanças no resultado dos Top 10. Desafiados pela competição do framework web mais rápido, o total de 133 pessoas enviaram 2.835 commits, alguns frameworks gerenciaram consideravelmente o número de requisições por segundo (RPS), enquanto outros tiveram apenas modestas melhorias.
Este ano, os testes foram executados em aproximadamente 125 frameworks web em duas configurações de hardware: Xeon E5 (mesmo do último ano) e também usando uma instância EC2 C3.Large, um Xeon E5-2680 2-vCPU EC2 na Amazon Web Services (último ano foi utilizado uma instância M1.Large). Todos os testes foram executados no Linux. O benchmark realiza diferentes tipos de requisições: um "Hello, World!" JSON, uma linha de uma consulta ao banco de dados, múltiplas linhas de uma consulta ao banco de dados, todas as linhas de uma consulta ao banco de dados, atualizar dados no banco de dados e por fim, um "Hello, World!" em texto puro. Ressaltando que há importantes diferenças em como os frameworks web reagem aos diferentes tipos de testes. A seguir temos os resultados dos Top 10 e os demais famosos frameworks no teste "Hello World!" usando JSON.
(clique na imagem para ampliar)
Algumas observações:
- Este ano, o melhor desempenho conseguiu atender o dobro de RPS em relação ao primeiro colocado do ano passado (realizado na mesma máquina), passando de 1,05 milhão para 2,2 milhões;
- O melhor resultado foi do recém chegado LWAN;
- Todos os Top 10 frameworks são escritos em C, C++ ou Java.
Há importantes diferenças entre os resultados do Dell Xeon E5 e a máquina na AWS, uma instância EC2 C3.Large:
Esperávamos melhores números na máquina Dell Xeon, mas não que fosse 25 vezes superior.
Há importantes mudanças nos Top 10 para as duas configurações de hardware. Na instância EC2 C3.Large é relativamente novo e desconhecido framework chamado Ur/Web escrito em Ur, inspirado por ML e Haskell e otimizado para desempenho.
Enquanto alguns frameworks realizaram um grande progresso desde o ano passado, alguns pouco evoluíram. Embora Go e Node.js estavam no Top 10, agora eles estão na posição #19 e #37, respectivamente.
O teste realizado com Dart fez um grande progresso, passando de 54.896 para 243.999 RPS, mas ainda continua bem atrás na posição #33.
Qualquer interessado em melhorar o desempenho do seu framework preferido está convidado a contribuir e enviar um pull request. O código fonte e os requisitos fornecem em detalhes cada tipo de teste executado e outras informações adicionais. O comparativo de desempenho entre os vários frameworks web do ano passado fornece mais detalhes de como os testes são conduzidos e algumas observações sobre o benchmark.