Neues Release der JavaScript-Engine V8 bringt mehr Performance mit

Mehr Performance für V8 Version 6.5
Keine Kommentare

Version 6.5 der JavaScript-Engine V8 liegt als Beta-Release vor. Die neue Version bringt einige neue Features mit, darunter Verbesserungen an der Performance und Neuerungen am Untrusted Code Mode, der vor Spectre-Angriffen schützen soll.

Die finalen Releases neuer Version von V8 sind an die Veröffentlichung im Stable Channel von Google Chrome gekoppelt. V8 Version 6.5 soll gemeinsam mit Chrome Version 65 erscheinen und befindet sich somit derzeit noch im Beta-Status. Im offiziellen Blog zur JavaScript-Engine V8 gibt Mathias Bynens aber schon einen Einblick in die Neuerungen an V8 für Entwickler, die mit Chrome 65 ausgeliefert werden.

Untrusted Code Mode

In Reaktion auf Spectre wurde ein Untrusted Code Mode für V8 eingeführt. Aufgrund des JIT-Compilers, der die Ausführung von JavaScript-Code beschleunigt, ist die V8-Engine nämlich unter bestimmten Umständen mit Speculative Side-Channel Attacks angreifbar, die unter dem Namen Spectre bekannt wurden. Das ist allerdings nur möglich, wenn embedded V8-Instanzen nicht vertrauenswürdigen Code ausführen. Eine Lösung für das Problem wurde bereits im Rahmen von V8 Version 6.4 umgesetzt; alle Informationen dazu können auf GitHub nachgelesen werden. Zu V8 Version 6.5 ist der Untrusted-Code-Modus nun standardmäßig aktiviert.

Verbesserte Performance in V8 Version 6.5

V8 Version 6.5 bringt außerdem einen neuen Mechanismus mit, der Entwickler bei der Aufspürung sogenannter deoptimization Loops unterstützen soll. Dabei handelt es sich um Situationen, in denen bisher nicht feststellbar war, warum optimierter Code de-optimiert ausgeführt wird und TurboFan 30 Sekunden lang versuchte, den Code dennoch zu optimieren. Version 6.5 von V8 bringt nun einen Mechanismus mit, der derartige Fehler aufspürt und die Ausführung der Optimierungen unterdrückt.

Außerdem wurde der Fast-Path erweitert. Version 6.5 bringt dazu einen zusätzlichen Inline-Support für die folgenden Arrays mit:

  • Array.prototype.reduce
  • Array.prototype.reduceRight
  • Array.prototype.find
  • Array.prototype.findIndex
  • Array.prototype.some
  • Array.prototype.every

Ein direkter Vergleich der Performance von V8 v6.4 und v6.5 ergibt folgendes Bild für Integer Arrays, Double Arrays und Double Arrays with Holes:

Quelle: https://v8project.blogspot.de/2018/02/v8-release-65.html

Daneben wurde auch an der WebAssembly-Compilation gearbeitet. Die Compilation von WebAssembly-Modulen nun genauso schnell erfolgen wie deren Download.

Alle Informationen zu V8 Version 6.5 können im Blogpost zur neuen Version nachgelesen werden.

Unsere Redaktion empfiehlt:

Relevante Beiträge

X
- Gib Deinen Standort ein -
- or -