Un nouveau framework JavaScript bat des records de performance
Moscou, 15 octobre 2020. La communauté des développeurs est en émoi : le framework NeoV8 a été annoncé, ses créateurs affirmant qu'il démontre un débit (RPS) 3,2 fois plus élevé lors du traitement des requêtes HTTP par rapport au Node.js 14 LTS standard. Les benchmarks publiés sur GitHub montrent 89 000 requêtes/seconde contre 28 000 pour le concurrent sur une simple application CRUD.
Le créateur du framework, Alexeï Belov (ex-ingénieur V8 chez Google), explique cette percée par l'abandon de la boucle d'événements (Event Loop) traditionnelle au profit d'un planificateur asynchrone basé sur io_uring (mécanisme d'entrée-sortie asynchrone sous Linux 5.x). « Nous avons réécrit le cœur de la gestion du réseau et du système de fichiers. Au lieu d'attendre les callbacks, le planificateur précharge les données dans un buffer, économisant jusqu'à 40 % de temps sur les changements de contexte », a déclaré Belov dans une interview au portail Habr.
Les experts appellent cependant à la prudence. « Les chiffres sont impressionnants, mais les tests ont été réalisés sur une API synthétique sans calculs complexes. Dans des projets réels avec des bases de données et des appels externes, l'écart pourrait se réduire à 30-50 % », commente Nikita Prokopiev, développeur principal chez Yandex.Cloud. Néanmoins, le benchmark TechEmpower a déjà inclus NeoV8 dans son classement Round 20, où il a pris la 4e place parmi tous les frameworks, dépassant Fastify et Koa.
Le framework est entièrement compatible avec les packages npm, mais nécessite Node.js ≥ 14.5 et un noyau Linux 5.4+. Sous Windows et macOS, les performances chutent de 60 % en raison de l'absence d'io_uring. La sortie de la version 1.0 est prévue pour décembre 2020, tandis qu'elle est actuellement disponible en statut Release Candidate.
Le marché réagit déjà : la startup DeployNow a intégré NeoV8 dans son service edge, annonçant une réduction des coûts serveurs de 35 %. Cependant, les grandes entreprises comme Netflix et PayPal ne commentent pas encore un éventuel changement. La question reste : NeoV8 deviendra-t-il le nouveau standard ou restera-t-il un outil de niche pour les systèmes à haute charge (high-load) ?