Classificação dos frameworks da web de alta velocidade 2020



Outro dia fiquei intrigado ao escolher uma solução para o servidor de um construtor de sites carregado. A arquitetura atual é construída sobre a popular estrutura MVC no bom e velho PHP. Essa estrutura é boa para o desenvolvimento rápido de uma grande quantidade de funcionalidades e um início rápido, todos nós sabemos disso. Somente após esse início, chega o momento em que surgem gargalos que exigem desempenho aprimorado e a estrutura universal usual não pode mais lidar.

No processo de encontrar uma solução, deparei-me com a análise da velocidade de processamento de solicitações para um grande número de estruturas existentes hoje. Eu escolhi dentre eles aqueles que têm mais de 5.000 estrelas no GitHub e que processam mais de 150.000 solicitações por segundo. Na fórmula para calcular a classificação, o segundo parâmetro é quadrado, pois as flutuações das estrelas são muito maiores.

Como resultado, a fórmula é a seguinte:
Número de estrelas no GitHub * (Número de solicitações por segundo) ^ 2

Líderes em negrito em termos de velocidade de processamento de solicitações são destacados em negrito.

1. Beego [go] - 359 279
2. Gin [go] - 252 895
3. FastHttp [go] - 420 498
4. Echo [go] - 262 940
5. ASP.NET Core[csharp] - 263 725
6. Trabalhador [php] - 349 897
7. Mux [go] - 263 585
8. Koa [js] - 159 032
9. Perfeito [swift] - 218 634
10. Chi [go] - 274 507
11. Fastify [js] - 177 372
12. Falcon [python] - 208 805
13. Bottle [python] - 168 776
14. Ktor [kotlin] - 162 842
15. owboy [elixir] - 160 063

Medições do número de solicitações em segundo realizado usando wrk. O mecanismo de contagem é baseado em respostas em três cenários:
- abrindo a página principal com a resposta 200 e o conteúdo em branco
- abra as páginas / user com a resposta 200 e o conteúdo em branco
- abra as páginas / user / __ ID__ com a resposta 200 ec __ID__ no conteúdo

Se você não encontrou sua estrutura favorita, procure a fonte, lá estão elas mais de cem. Caso contrário, aparecerá em breve e a classificação será revisada. Você pode acelerar isso criando uma solicitação pull com sua estrutura.

Fonte de dados: GitHub e frameworks da Web.

Se você tiver experiência em usar qualquer um desses frameworks, ficarei feliz em discutir com você nos comentários.

Source: https://habr.com/ru/post/undefined/


All Articles