Zum Hauptinhalt springen

V8 ❤️ Node.js

· 3 Minuten Lesezeit
Franziska Hinkelmann, Node Monkey Patcher

Die Beliebtheit von Node.js ist in den letzten Jahren stetig gewachsen, und wir haben daran gearbeitet, Node.js besser zu machen. Dieser Blogbeitrag beleuchtet einige der jüngsten Bemühungen in V8 und DevTools.

Node.js in DevTools debuggen

Sie können jetzt Node-Anwendungen mithilfe der Chrome-Entwicklertools debuggen. Das Chrome DevTools-Team hat den Quellcode, der das Debugging-Protokoll implementiert, von Chromium nach V8 verlagert und dadurch Node Core erleichtert, die Debugger-Quellen und Abhängigkeiten auf dem neuesten Stand zu halten. Auch andere Browseranbieter und IDEs nutzen das Chrome-Debugging-Protokoll, um das Entwicklererlebnis bei der Arbeit mit Node insgesamt zu verbessern.

ES2015-Geschwindigkeitsverbesserungen

Wir arbeiten hart daran, V8 schneller denn je zu machen. Ein Großteil unserer jüngsten Leistungsarbeit konzentriert sich auf ES6-Funktionen, einschließlich Promises, Generatoren, Destruktoren und Rest/Spread-Operatoren. Da die Versionen von V8 in Node 6.2 und höher ES6 vollständig unterstützen, können Node-Entwickler neue Sprachfeatures "nativ" ohne Polyfills verwenden. Das bedeutet, dass Node-Entwickler oft die ersten sind, die von ES6-Leistungsverbesserungen profitieren. Ebenso sind sie häufig die ersten, die Leistungsregressionen erkennen. Dank einer aufmerksamen Node-Community haben wir eine Reihe von Regressionen entdeckt und behoben, darunter Leistungsprobleme bei instanceof, buffer.length, langen Argumentlisten und let/const.

Korrekturen für das vm-Modul und REPL in Node.js kommen

Das vm-Modul hatte einige langjährige Einschränkungen. Um diese Probleme angemessen zu lösen, haben wir die V8-API erweitert, um ein intuitiveres Verhalten zu implementieren. Wir freuen uns, ankündigen zu können, dass die Verbesserungen des vm-Moduls eines der Projekte sind, die wir als Mentoren im Rahmen von Outreachy für die Node Foundation unterstützen. Wir hoffen, in naher Zukunft weitere Fortschritte bei diesem und anderen Projekten zu sehen.

async/await

Mit asynchronen Funktionen können Sie asynchronen Code drastisch vereinfachen, indem Sie den Programmfluss umschreiben, indem Promises sequentiell abgewartet werden. async/await wird in Node mit dem nächsten V8-Update eingeführt. Unsere jüngsten Arbeiten zur Verbesserung der Leistung von Promises und Generatoren haben dazu beigetragen, dass asynchrone Funktionen schnell sind. In einem verwandten Hinweis arbeiten wir auch an der Bereitstellung von Promise-Hooks, einer Reihe von Introspektions-APIs, die für die Node Async Hook API erforderlich sind.

Möchten Sie die neueste Node.js-Version ausprobieren?

Wenn Sie begeistert sind, die neuesten V8-Funktionen in Node zu testen und keine Angst davor haben, modernste, instabile Software zu verwenden, können Sie unseren Integrationszweig hier ausprobieren. V8 wird kontinuierlich in Node integriert, bevor V8 Node.js erreicht, sodass wir Probleme frühzeitig erkennen können. Seien Sie jedoch gewarnt, dies ist experimenteller als der aktuelle Stand von Node.js.