12 Punkte von xguru 2023-12-23 | Noch keine Kommentare. | Auf WhatsApp teilen
  • Zusammenfassung der beeindruckenden Verbesserungen der V8-Engine im Jahr 2023
  • Allgemeine Geschwindigkeitssteigerung durch die Einführung eines neuen Compilers für die mittlere Stufe sowie Verbesserungen am Compiler der oberen Stufe, an der Laufzeitumgebung und am Garbage Collector
  • Neue Funktionen für JavaScript und WebAssembly hinzugefügt und mit WebAssembly Garbage Collection (WasmGC) Garbage-Collected-Programmiersprachen effizient ins Web gebracht
  • Zur Verbesserung der Sicherheit wurde die Sandboxing-Infrastruktur ausgebaut und in V8 Control Flow Integrity (CFI) eingeführt

Maglev: neuer Optimierungs-Compiler für die mittlere Stufe

  • Einführung des neuen Optimierungs-Compilers Maglev, der zwischen Sparkplug und TurboFan arbeitet
  • Maglev erzeugt Code etwa 20-mal langsamer als Sparkplug, aber 10- bis 100-mal schneller als TurboFan
  • In JetStream wurde ein Performance-Zuwachs von 8,2 % und in Speedometer von 6 % beobachtet
  • Energieeinsparungen durch die schnelle Kompilierung von Maglev und die geringere Abhängigkeit von TurboFan

Turboshaft: neue Architektur für den Optimierungs-Compiler der oberen Stufe

  • Einführung von Turboshaft, einer neuen internen Architektur für den Optimierungs-Compiler der oberen Stufe TurboFan
  • Neue Optimierungen lassen sich hinzufügen und Kompilierung wird schneller
  • Seit Chrome 120 verwenden alle CPU-agnostischen Backend-Phasen Turboshaft; die Kompilierung ist damit etwa doppelt so schnell wie zuvor

Schnellerer HTML-Parser

  • Ein schnellerer HTML-Parser wurde zu Blink hinzugefügt, um die für HTML-Parsing benötigte Zeit zu verringern
  • 3,4 % höherer Speedometer-Wert
  • Das WebKit-Projekt hat diese Änderung sofort übernommen

Schnellere DOM-Allokation

  • Investitionen und Optimierungen auf der DOM-Seite
  • Hinzufügen eines Seiten-Pools zum Oilpan-Allocator verringert die Roundtrip-Kosten zum Kernel
  • Unterstützung für komprimierte und nicht komprimierte Pointer sowie Vermeidung der Komprimierung hochfrequenter Felder in Blink
  • Durch Oilpanisierung häufig allokierter Klassen wurden Allokationen um das Dreifache beschleunigt und die Performance DOM-zentrierter Benchmarks verbessert

Neue JavaScript-Funktionen

  • Neu standardisierte JavaScript-Funktionen ausgerollt
  • Hinzugefügt wurden unter anderem resizable ArrayBuffers, ArrayBuffer transfer, String isWellFormed und toWellFormed, das RegExp-Flag v, JSON.parse with source, Array grouping, Promise.withResolvers und Array.fromAsync
  • Die Iterator-Helper wurden wegen Problemen mit der Webkompatibilität vorübergehend zurückgezogen und sollen erneut ausgerollt werden
  • Einige unnötige temporäre Dead-Zone-Prüfungen wurden ausgelassen, um die Performance von ES6+-JavaScript-Code zu verbessern

WebAssembly-Updates

  • Neue Funktionen und Performance-Verbesserungen für Wasm
  • Performance-Steigerungen durch Unterstützung für Multi-Memory, Tail Calls und Relaxed SIMD
  • Die Implementierung von Memory64 ist abgeschlossen und soll ausgerollt werden, sobald der Vorschlag Stage 4 erreicht
  • Neueste Aktualisierungen des Vorschlags für Exception Handling übernommen und Unterstützung für das ältere Format hinzugefügt
  • Investitionen in JSPI ermöglichen eine größere Klasse von Anwendungen im Web

WebAssembly Garbage Collection

  • Mit dem Rollout von WasmGC können Objekte und Arrays allokiert werden, die vom bestehenden Garbage Collector von V8 verwaltet werden
  • Beim Kompilieren von Anwendungen, die in Garbage-Collected-Sprachen wie Java, Kotlin und Dart geschrieben sind, nach Wasm ist die Ausführung etwa doppelt so schnell wie bei der Kompilierung nach JavaScript

Sicherheit

  • Sandboxing, Fuzzing und CFI waren in diesem Jahr die zentralen Sicherheitsthemen
  • Aufbau der Sandboxing-Infrastruktur, Investitionen in die Fuzzing-Infrastruktur und Verbesserung der Sprachabdeckung
  • Grundlage für eine CFI-Architektur geschaffen, die auf verschiedenen Plattformen implementiert werden kann
  • Gängige Exploit-Techniken rund um the_hole entschärft und ein neues Bug-Bounty-Programm für Exploits in Form von V8CTF gestartet

Fazit

  • Die kombinierte Wirkung vieler kleiner Performance-Projekte führte zu erheblichen Ergebnissen
  • Benchmark-Werte, die die Performance-Steigerungen von V8 im Jahr 2023 zeigen, stiegen um 14 % in JetStream und 34 % in Speedometer
  • V8 ist jetzt schneller und sicherer, und die Reise zu einem schnellen und intensiven Web hat gerade erst begonnen
  • Das V8-Team wünscht allen ein schnelles, sicheres und großartiges Web-Erlebnis

Noch keine Kommentare.

Noch keine Kommentare.