Aller au contenu principal

V8 ❤️ Node.js

· 3 minutes de lecture
Franziska Hinkelmann, Node Monkey Patcher

La popularité de Node.js a augmenté régulièrement ces dernières années, et nous avons travaillé pour rendre Node.js meilleur. Ce billet de blog met en lumière certains des efforts récents dans V8 et DevTools.

Déboguer Node.js avec DevTools

Vous pouvez maintenant déboguer des applications Node à l'aide des outils de développement de Chrome. L'équipe Chrome DevTools a déplacé le code source qui implémente le protocole de débogage de Chromium vers V8, ce qui facilite la mise à jour des sources de débogueur et des dépendances pour Node Core. D'autres fournisseurs de navigateurs et IDE utilisent également le protocole de débogage Chrome, améliorant ensemble l'expérience des développeurs travaillant avec Node.

Optimisations de vitesse pour ES2015

Nous travaillons dur pour rendre V8 plus rapide que jamais. Une grande partie de nos travaux récents sur les performances se concentre sur les fonctionnalités ES6, notamment les promesses, les générateurs, les destructeurs et les opérateurs rest/spread. Étant donné que les versions de V8 dans Node 6.2 et au-delà prennent en charge ES6, les développeurs Node peuvent utiliser de nouvelles fonctionnalités de langage "nativement", sans polyfills. Cela signifie que les développeurs Node sont souvent les premiers à bénéficier des améliorations de performance ES6. De même, ils sont souvent les premiers à reconnaître les régressions de performance. Grâce à une communauté Node attentive, nous avons découvert et corrigé de nombreuses régressions, y compris des problèmes de performance avec instanceof, buffer.length, des listes d'arguments longues, et let/const.

Corrections à venir pour le module vm de Node.js et REPL

Le module vm présente certaines limitations de longue date. Afin de traiter ces problèmes correctement, nous avons étendu l'API V8 pour implémenter un comportement plus intuitif. Nous sommes ravis d'annoncer que les améliorations du module vm font partie des projets que nous soutenons en tant que mentors dans Outreachy pour la Fondation Node. Nous espérons voir des progrès supplémentaires sur ce projet et d'autres dans un avenir proche.

async/await

Avec les fonctions asynchrones, vous pouvez simplifier drastiquement le code asynchrone en réécrivant le flux de programme en attendant des promesses de manière séquentielle. async/await arrivera dans Node avec la prochaine mise à jour de V8. Nos travaux récents sur l'amélioration des performances des promesses et des générateurs ont contribué à rendre les fonctions asynchrones rapides. Dans une note connexe, nous travaillons également à fournir des hooks de promesse, un ensemble d'APIs d'introspection nécessaires pour l'API Node Async Hook.

Vous souhaitez essayer Node.js à la pointe de la technologie ?

Si vous êtes impatient de tester les nouvelles fonctionnalités de V8 dans Node et que cela ne vous dérange pas d'utiliser des logiciels instables à la pointe de la technologie, vous pouvez essayer notre branche d'intégration ici. V8 est continuellement intégré dans Node avant que V8 n'atteigne Node.js, ce qui nous permet de détecter les problèmes tôt. Cependant, attention, c'est plus expérimental que Node.js tip-of-tree.