JavaScript: V8 7.7 verspricht höhere Performance

Für die sogenannten Feedback-Vektoren nutzt die Open-Source-Engine nun Lazy Allocation, um die Speicherauslastung zu minimieren.

In Pocket speichern vorlesen Druckansicht 24 Kommentare lesen
JavaScript: V8 7.5 optimiert WebAssembly-Module
Lesezeit: 2 Min.
Von
  • Matthias Parbel

Googles JavaScript-Implementierung V8 liegt in Version 7.7 vor. Sie bietet eine Reihe von Verbesserungen für JavaScript und WebAssembly; der Fokus liegt dabei auf Leistungsoptimierung. Beispielsweise soll die Lazy Allocation von Feedback-Vektoren dazu beitragen, die Speicherauslastung zu reduzieren. Wie gewohnt bleibt das V8-Release so lange im Beta-Status, bis die zugehörige Chrome-Version 77 offiziell freigegeben ist.

Bei der Optimierung der Ausführungszeiten von JavaScript nutzt V8 die sogenannten Feedback-Vektoren, um Informationen über die Art der Operanden vorzuhalten, die an verschiedene Operationen wie + oder o.foo übergeben werden. Dem Vorteil schnellerer Ausführungszeiten steht dabei allerdings eine erhöhte Speicherauslastung gegenüber. Um den Speicherverbrauch von V8 zu reduzieren, erfolgt die Zuweisung der Feedback-Vektoren ab Version 7.7 nun per Lazy Allocation, wenn die Funktion eine bestimmte Menge an Bytecode ausgeführt hat. Dadurch wird vor allem auf Feedback-Vektoren für nur kurze Zeit benötigte Funktionen verzichtet, die nicht von den gesammelten Werten profitieren. Die V8-Heap-Größe soll sich dadurch in der Praxis zwischen zwei und acht Prozent reduzieren lassen.

Die V8-Entwickler haben sich darüber hinaus bemüht, die Skalierung der Kompilierung von WebAssembly im Hintergrund weiter zu verbessern. Erklärtes Ziel ist es, die Prozessorkerne des jeweils genutzten Rechners oder Mobilgerätes bestmöglich auszunutzen. Abhängig von der Zahl der verwendeten Threads sollen sich die Kompilierzeiten gegenüber V8 Version 7.4 bis um die Hälfte reduzieren, wie Tests mit der Demo von Epic ZenGarden zeigen.

Hintergrund-Kompilierung von WebAssembly mit der Demo von Epic ZenGarden.

(Bild: V8-Blog)

Ein Überblick aller weiteren Neuerungen in V8 7.7 – darunter Updates der V8 API und neue Funktionen der Intl.NumberFormat-API – findet sich im V8-Blog. Die aktuelle Engine ist in der Beta zu Chrome 75 enthalten, die Google über den Chrome-Beta-Channel bereitstellt. (map)