Zum Hauptinhalt springen

V8-Version v5.4

· 3 Minuten Lesezeit
Das V8-Team

Alle sechs Wochen erstellen wir einen neuen Branch von V8 im Rahmen unseres Freigabeprozesses. Jede Version wird direkt vor einem Chrome-Beta-Meilenstein vom Git-Master von V8 verzweigt. Heute freuen wir uns, unseren neuesten Branch V8-Version 5.4 anzukündigen, der bis zur Veröffentlichung zusammen mit Chrome 54 Stable in einigen Wochen im Beta-Stadium bleibt. V8 v5.4 ist mit allerlei Entwickler-Features ausgestattet, und wir möchten Ihnen einen Überblick über einige Highlights in Erwartung der Veröffentlichung geben.

Leistungsverbesserungen

V8 v5.4 liefert eine Reihe von wichtigen Verbesserungen hinsichtlich Speicherbedarf und Startgeschwindigkeit. Dies trägt insbesondere dazu bei, die initiale Skriptausführung zu beschleunigen und die Seitenladezeit in Chrome zu reduzieren.

Speicher

Bei der Messung des Speicherverbrauchs von V8 sind zwei Kennwerte besonders wichtig: Maximaler Speicherverbrauch und Durchschnittlicher Speicherverbrauch. Typischerweise ist es genauso wichtig, den maximalen Verbrauch zu reduzieren wie den Durchschnitt, da ein Skript, das den verfügbaren Speicher auch nur kurzzeitig erschöpft, einen Out of Memory-Absturz verursachen kann, selbst wenn der durchschnittliche Verbrauch nicht sehr hoch ist. Für Optimierungszwecke ist es nützlich, den Speicher von V8 in zwei Kategorien zu unterteilen: Heap-Speicher, der tatsächliche JavaScript-Objekte enthält, und Off-Heap-Speicher, der den Rest wie interne Datenstrukturen umfasst, die vom Compiler, Parser und Garbage Collector zugewiesen werden.

In Version 5.4 haben wir den Garbage Collector von V8 für Geräte mit wenig Arbeitsspeicher (512 MB oder weniger) optimiert. Je nach angezeigter Website reduziert dies den maximalen Speicherverbrauch von Heap-Speicher um bis zu 40%.

Das Speicherverwaltungssystem des JavaScript-Parsers von V8 wurde vereinfacht, um unnötige Allokationen zu vermeiden, wodurch der Off-Heap-Maximalspeicherverbrauch um bis zu 20% reduziert wurde. Diese Speicherersparnisse sind besonders hilfreich bei der Reduzierung des Speicherbedarfs großer Skriptdateien, einschließlich asm.js-Anwendungen.

Start & Geschwindigkeit

Unsere Arbeit zur Vereinfachung des Parsers von V8 hat nicht nur geholfen, den Speicherverbrauch zu senken, sondern auch die Laufzeitleistung des Parsers verbessert. Diese Vereinfachung, kombiniert mit weiteren Optimierungen von JavaScript-Builtins und wie der Zugriff auf Eigenschaften von JavaScript-Objekten globale Inline-Caches nutzt, führte zu spürbaren Leistungsverbesserungen beim Start.

Unsere interne Start-Test-Suite, die die Echtwelt-JavaScript-Leistung misst, verbesserte sich um einen Median von 5%. Der Speedometer-Benchmark profitiert ebenfalls von diesen Optimierungen und verbessert sich um ~10 bis 13% im Vergleich zu v5.2.

V8 API

Bitte werfen Sie einen Blick auf unsere Zusammenfassung der API-Änderungen. Dieses Dokument wird regelmäßig ein paar Wochen nach jeder Hauptversion aktualisiert.

Entwickler mit einem aktiven V8-Checkout können git checkout -b 5.4 -t branch-heads/5.4 verwenden, um mit den neuen Funktionen in V8 v5.4 zu experimentieren. Alternativ können Sie Chromes Beta-Kanal abonnieren und die neuen Funktionen bald selbst ausprobieren.