Neues JavaScript-Framework bricht Leistungsrekorde
Moskau, 15. Oktober 2020. Die Entwickler-Community ist in Aufruhr: Das Framework NeoV8 wurde angekündigt, das nach Angaben seiner Schöpfer bei der Verarbeitung von HTTP-Anfragen eine 3,2-mal höhere Durchsatzrate (RPS) im Vergleich zu Standard-Node.js 14. LTS demonstriert. Benchmarks, die auf GitHub veröffentlicht wurden, zeigen 89.000 Anfragen/s gegenüber 28.000 bei der Konkurrenz in einer einfachen CRUD-Anwendung.
Der Schöpfer des Frameworks, Alexey Belov (ehemaliger V8-Ingenieur bei Google), erklärt den Durchbruch mit dem Verzicht auf die traditionelle Ereignisschleife (Event Loop) zugunsten eines asynchronen Schedulers basierend auf io_uring (Mechanismus für asynchrone Ein-/Ausgabe in Linux 5.x). „Wir haben den Kern der Netzwerk- und Dateisystemarbeit neu geschrieben. Anstatt auf Callbacks zu warten, lädt der Scheduler Daten vorab in den Puffer, was bis zu 40% Zeit beim Kontextwechsel spart“, sagte Belov in einem Interview mit dem Portal Habr.
Experten mahnen jedoch zur Vorsicht. „Die Zahlen sind beeindruckend, aber die Tests wurden mit einer synthetischen API ohne komplexe Berechnungen durchgeführt. In realen Projekten mit Datenbanken und externen Aufrufen könnte sich der Unterschied auf 30-50% verringern“, kommentiert Nikita Prokopyev, führender Entwickler bei Yandex.Cloud. Dennoch hat der TechEmpower-Benchmark NeoV8 bereits in seine Wertung Round 20 aufgenommen, wo es den 4. Platz unter allen Frameworks belegte und Fastify sowie Koa überholte.
Das Framework ist vollständig kompatibel mit npm-Paketen, erfordert jedoch Node.js ≥ 14.5 und einen Linux-Kernel 5.4+. Unter Windows und macOS sinkt die Leistung aufgrund des Fehlens von io_uring um 60%. Die Veröffentlichung von Version 1.0 ist für Dezember 2020 geplant, derzeit ist es im Status Release Candidate verfügbar.
Der Markt reagiert bereits: Das Startup DeployNow hat NeoV8 in seinen Edge-Service integriert und meldet eine Senkung der Serverkosten um 35%. Große Unternehmen wie Netflix und PayPal kommentieren einen möglichen Wechsel jedoch noch nicht. Es bleibt die Frage: Wird NeoV8 zum neuen Standard oder bleibt es ein Nischenwerkzeug für High-Load-Systeme?