Évaluation des frameworks Web haute vitesse 2020



J'ai été perplexe l'autre jour en choisissant une solution pour le serveur principal d'un constructeur de site chargé. L'architecture actuelle est construite sur le framework MVC populaire dans le bon vieux PHP. Un tel cadre est bon pour le développement rapide d'une grande quantité de fonctionnalités et un démarrage rapide, nous le savons tous. Ce n'est qu'après ce démarrage que le moment vient bientôt où des goulots d'étranglement surviennent qui nécessitent des performances accrues et le cadre universel habituel ne peut plus faire face.

En train de trouver une solution, je suis tombé sur des analyses de la vitesse de traitement des demandes pour un grand nombre de frameworks qui existent aujourd'hui. J'ai choisi parmi eux ceux qui ont plus de 5 000 étoiles sur GitHub et qui traitent plus de 150 000 requêtes par seconde. Dans la formule de calcul de la note, le deuxième paramètre est au carré, car les fluctuations des étoiles sont beaucoup plus importantes.

Par conséquent, la formule est la suivante:
Nombre d'étoiles sur GitHub * (Nombre de demandes par seconde) ^ 2 Les caractères

gras en termes de vitesse de traitement des demandes sont mis en évidence en gras.

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. Workerman [php] - 349 897
7. Mux [go] - 263 585
8. Koa [js] - 159 032
9. Perfect [swift] - 218 634
10. Chi [go] - 274 507
11. Fastify [js] - 177 372
12. Falcon [python] - 208 805
13. Bouteille [python] - 168 776
14. Ktor [kotlin] - 162 842
15. owboy [élixir] - 160 063

Mesures du nombre de demandes en deuxième conduite en utilisant wrk. Le mécanisme de comptage est basé sur les réponses dans trois scénarios:
- ouvrir la page principale avec la réponse 200 et le contenu vierge
- ouvrir les pages / user avec la réponse 200 et le contenu vierge
- ouvrir les pages / user / __ ID__ avec la réponse 200 et c __ID__ dans le contenu

Si vous n'avez pas trouvé votre framework préféré, alors regardez dans la source, elles sont là plus d'une centaine. Sinon, il apparaîtra bientôt et la note sera revue. Vous pouvez accélérer cela en créant une demande d'extraction avec votre infrastructure.

Source de données: GitHub et cadres Web.

Si vous avez de l'expérience dans l'utilisation de l'un de ces cadres, je serai heureux de discuter avec vous dans les commentaires.

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


All Articles