Bewertung von Hochgeschwindigkeits-Web-Frameworks 2020



Ich war neulich verwirrt, als ich eine Lösung für das Server-Backend eines geladenen Site Builders auswählte. Die aktuelle Architektur basiert auf dem beliebten MVC-Framework im guten alten PHP. Ein solches Framework ist gut für die schnelle Entwicklung einer großen Menge an Funktionen und einen schnellen Start, das wissen wir alle. Erst nach diesem Start kommt der Moment, in dem Engpässe auftreten, die eine höhere Leistung erfordern und die üblichen universellen Rahmenbedingungen nicht mehr bewältigen können.

Bei der Suche nach einer Lösung stieß ich auf eine Analyse der Geschwindigkeit der Verarbeitung von Anforderungen für eine große Anzahl von Frameworks, die heute existieren. Ich habe aus ihnen diejenigen ausgewählt, die mehr als 5.000 Sterne auf GitHub haben und mehr als 150.000 Anfragen pro Sekunde verarbeiten. In der Formel zur Berechnung der Bewertung wird der zweite Parameter quadriert, da die Schwankungen der Sterne viel größer sind.

Infolgedessen lautet die Formel wie folgt:
Anzahl der Sterne auf GitHub * (Anzahl der Anforderungen pro Sekunde) ^ 2

Fettgedruckte Führungskräfte in Bezug auf die Geschwindigkeit der Anforderungsverarbeitung sind fett hervorgehoben.

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. Perfekt [schnell] - 218 634
10. Chi [go] - 274 507
11. Fastify [js] - 177 372
12. Falcon [Python] - 208 805
13. Flasche [Python] - 168 776
14. Ktor [Kotlin] - 162 842
15. owboy [Elixier] - 160 063

Messungen der Anzahl der Anfragen in zweite mit wrk durchgeführt. Der Zählmechanismus basiert auf Antworten in drei Szenarien:
- Öffnen der Hauptseite mit der Antwort 200 und leerem Inhalt
- Öffnen der / user-Seiten mit der Antwort 200 und des leeren Inhalts
- Öffnen der / user / __ ID__ -Seiten mit der Antwort 200 und c __ID__ im Inhalt

Wenn Sie Ihr bevorzugtes Framework nicht gefunden haben, suchen Sie in der Quelle nach diesen mehr als hundert. Wenn nicht, wird es bald angezeigt und die Bewertung wird überprüft. Sie können dies beschleunigen, indem Sie mit Ihrem Framework eine Pull-Anfrage erstellen.

Datenquelle: GitHub und Web-Frameworks.

Wenn Sie Erfahrung mit einem dieser Frameworks haben, werde ich dies gerne in den Kommentaren mit Ihnen besprechen.

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


All Articles