Zum Hauptinhalt springen

V8-Extras

· 6 Minuten Lesezeit
Domenic Denicola ([@domenic](https://twitter.com/domenic)), Streams-Zauberer

V8 implementiert eine große Teilmenge der eingebauten Objekte und Funktionen der JavaScript-Sprache in JavaScript selbst. Beispielsweise ist unsere Promises-Implementierung in JavaScript geschrieben. Solche eingebauten Objekte nennt man self-hosted. Diese Implementierungen sind in unserem Startup-Snapshot enthalten, sodass neue Kontexte schnell erstellt werden können, ohne die selbst gehosteten Built-ins zur Laufzeit einrichten und initialisieren zu müssen.

V8-Version v4.9

· 6 Minuten Lesezeit
das V8-Team

Etwa alle sechs Wochen erstellen wir einen neuen Branch von V8 im Rahmen unseres Veröffentlichungsprozesses. Jede Version wird direkt aus dem Git-Master von V8 branchiert, unmittelbar bevor Chrome für einen Chrome-Beta-Meilenstein branchiert. Heute freuen wir uns, unseren neuesten Branch, V8-Version 4.9, bekannt zu geben, der bis zur Veröffentlichung in Abstimmung mit Chrome 49 Stable Beta sein wird. V8 4.9 ist vollgepackt mit allerlei Entwickler-Goodies, und wir möchten Ihnen einen Vorgeschmack auf einige der Highlights geben, die in mehreren Wochen veröffentlicht werden.

Es gibt `Math.random()`, und dann gibt es `Math.random()`

· 4 Minuten Lesezeit
Yang Guo ([@hashseed](https://twitter.com/hashseed)), Softwareingenieur und Würfeldesigner

Math.random() gibt einen Number-Wert mit positivem Vorzeichen zurück, der größer oder gleich 0, aber kleiner als 1 ist, zufällig oder pseudozufällig mit ungefähr gleichmäßiger Verteilung über diesen Bereich ausgewählt, unter Verwendung eines implementationsabhängigen Algorithmus oder einer Strategie. Diese Funktion nimmt keine Argumente entgegen.

V8 Version v4.8

· 2 Minuten Lesezeit
Das V8-Team

Etwa alle sechs Wochen erstellen wir einen neuen Branch von V8 im Rahmen unseres Veröffentlichungsprozesses. Jede Version wird direkt vor der Verzweigung des Chrome-Beta-Meilensteins aus dem Git-Master von V8 abgezweigt. Heute freuen wir uns, unseren neuesten Branch, V8 Version 4.8, anzukündigen, der sich in der Beta-Phase befindet, bis er zusammen mit Chrome 48 Stable veröffentlicht wird. V8 4.8 enthält eine Reihe von Funktionen, die für Entwickler wichtig sind, daher möchten wir Ihnen einen Vorgeschmack auf einige der Höhepunkte geben, die in einigen Wochen veröffentlicht werden.

Jank-Busters Teil Eins

· 4 Minuten Lesezeit
die Jank-Busters: Jochen Eisinger, Michael Lippautz und Hannes Payer

Jank, oder anders gesagt sichtbares Stocken, kann bemerkt werden, wenn Chrome nicht in der Lage ist, einen Frame innerhalb von 16,66 ms zu rendern (was die Bewegung mit 60 Frames pro Sekunde unterbricht). Zum jetzigen Zeitpunkt wird der Großteil der V8-Garbage-Collection-Arbeiten auf dem Haupt-Rendering-Thread ausgeführt, siehe Abbildung 1, was häufig zu Jank führt, wenn zu viele Objekte verwaltet werden müssen. Jank zu eliminieren war für das V8-Team schon immer eine hohe Priorität (1, 2, 3). Dieser Artikel diskutiert einige Optimierungen, die zwischen Chrome 41 und Chrome 46 implementiert wurden und die Garbage-Collection-Pausen signifikant reduzieren, was zu einer besseren Benutzererfahrung führt.

V8-Version v4.7

· 2 Minuten Lesezeit
das V8-Team

Etwa alle sechs Wochen erstellen wir einen neuen V8-Zweig im Rahmen unseres Release-Prozesses. Jede Version wird direkt vor der Chrome-Verzweigung für einen Chrome-Beta-Meilenstein aus dem Git-Master von V8 verzweigt. Heute freuen wir uns, unseren neuesten Zweig anzukündigen, V8 Version 4.7, der sich in der Beta-Phase befindet, bis er zusammen mit Chrome 47 Stable veröffentlicht wird. V8 v4.7 ist voll mit allerlei Entwicklerproblemen, und wir möchten Ihnen einige Highlights bei der Vorfreude auf die Veröffentlichung in einigen Wochen vorstellen.

Benutzerdefinierte Start-Snapshots

· 3 Minuten Lesezeit
Yang Guo ([@hashseed](https://twitter.com/hashseed)), Software Engineer und Lieferant von Motorvorwärmern

Die JavaScript-Spezifikation enthält viele eingebaute Funktionen, von Mathematikfunktionen bis hin zu einer voll ausgestatteten regulären Ausdrucksengine. Jede neu erstellte V8-Umgebung hat diese Funktionen von Anfang an verfügbar. Damit dies funktioniert, müssen das globale Objekt (z. B. das Fensterobjekt in einem Browser) und alle eingebauten Funktionen eingerichtet und initialisiert werden, um in den V8-Heap aufgenommen zu werden, sobald die Umgebung erstellt wird. Es dauert eine ganze Weile, dies von Grund auf neu zu tun.

V8 Veröffentlichung v4.6

· 5 Minuten Lesezeit
das V8-Team

Etwa alle sechs Wochen erstellen wir im Rahmen unseres Veröffentlichungsprozesses einen neuen Branch von V8. Jede Version wird unmittelbar vor dem Branch von Chrome für einen Chrome-Beta-Meilenstein vom Git-Master von V8 abgezweigt. Heute freuen wir uns, unseren neuesten Branch V8 Version 4.6 vorzustellen, der sich in der Beta-Phase befinden wird, bis er in Abstimmung mit Chrome 46 Stable freigegeben wird. V8 4.6 ist vollgepackt mit allerlei Neuerungen für Entwickler, daher möchten wir Ihnen einen Vorgeschmack auf einige Highlights geben, die in den kommenden Wochen veröffentlicht werden.

Kostenlose Speicherbereinigung

· 9 Minuten Lesezeit
Hannes Payer und Ross McIlroy, Idle Garbage Collectors

Die JavaScript-Performance bleibt einer der zentralen Werte von Chrome, insbesondere wenn es darum geht, eine flüssige Benutzererfahrung zu ermöglichen. Ab Chrome 41 nutzt V8 eine neue Technik, um die Reaktionsfähigkeit von Webanwendungen zu erhöhen, indem aufwendige Speicherverwaltungsoperationen in kleinen, sonst ungenutzten Leerlaufzeiten verborgen werden. Dadurch können Webentwickler mit flüssigerem Scrolling und geschmeidigen Animationen mit deutlich weniger Rucklern aufgrund von Speicherbereinigung rechnen.

Code-Caching

· 2 Minuten Lesezeit
Yang Guo ([@hashseed](https://twitter.com/hashseed)), Software Engineer

V8 verwendet die Just-in-Time-Kompilierung (JIT), um JavaScript-Code auszuführen. Das bedeutet, dass ein Skript unmittelbar vor seiner Ausführung analysiert und kompiliert werden muss — was zu erheblichem Aufwand führen kann. Wie wir kürzlich angekündigt haben, ist Code-Caching eine Technik, die diesen Aufwand verringert. Wenn ein Skript zum ersten Mal kompiliert wird, werden Cache-Daten erzeugt und gespeichert. Das nächste Mal, wenn V8 dasselbe Skript kompiliert, auch in einer anderen V8-Instanz, kann es die Cache-Daten nutzen, um das Kompilierungsergebnis erneut zu erstellen, anstatt von Grund auf zu kompilieren. Dadurch wird das Skript deutlich schneller ausgeführt.