Zum Hauptinhalt springen

12 Posts getaggt mit "Benchmarks"

Alle Tags anzeigen

Turbocharging V8 mit veränderlichen Heap-Zahlen

· 6 Minuten Lesezeit
[Victor Gomes](https://twitter.com/VictorBFG), der Bit-Shifter

Bei V8 streben wir ständig danach, die Leistung von JavaScript zu verbessern. Im Rahmen dieser Bemühungen haben wir kürzlich die JetStream2-Benchmark-Suite geprüft, um Leistungseinbrüche zu beseitigen. Dieser Beitrag beschreibt eine spezifische Optimierung, die eine signifikante Verbesserung von 2.5x im async-fs-Benchmark ergab und zu einem spürbaren Anstieg der Gesamtpunktzahl beitrug. Die Optimierung wurde durch den Benchmark inspiriert, aber solche Muster finden sich auch im echten Code.

V8 ist schneller und sicherer als je zuvor!

· 7 Minuten Lesezeit
[Victor Gomes](https://twitter.com/VictorBFG), der Glühwein-Experte

Willkommen in der spannenden Welt von V8, wo Geschwindigkeit nicht nur ein Feature, sondern eine Lebensweise ist. Während wir uns von 2023 verabschieden, ist es Zeit, die beeindruckenden Errungenschaften zu feiern, die V8 in diesem Jahr erreicht hat.

Durch innovative Leistungsoptimierungen erweitert V8 weiterhin die Grenzen des Möglichen in der sich ständig weiterentwickelnden Weblandschaft. Wir haben einen neuen Mitteltier-Compiler eingeführt und mehrere Verbesserungen an der Top-Tier-Compiler-Infrastruktur, der Laufzeitumgebung und dem Garbage Collector implementiert, was zu signifikanten Geschwindigkeitsgewinnen auf allen Ebenen geführt hat.

Beschleunigung von Spread-Elementen

· 9 Minuten Lesezeit
Hai Dang & Georg Neis

Während seines dreimonatigen Praktikums im V8-Team arbeitete Hai Dang daran, die Leistung von [...array], [...string], [...set], [...map.keys()] und [...map.values()] zu verbessern (wenn die Spread-Elemente am Anfang des Array-Literals stehen). Er machte auch Array.from(iterable) deutlich schneller. Dieser Artikel erklärt einige Details seiner Änderungen, die ab V8 v7.2 enthalten sind.

Schnellere asynchrone Funktionen und Versprechen

· 19 Minuten Lesezeit
Maya Armyanova ([@Zmayski](https://twitter.com/Zmayski)), immer-wartende Antizipatorin, und Benedikt Meurer ([@bmeurer](https://twitter.com/bmeurer)), professioneller Leistungsversprecher

Asynchrone Verarbeitung in JavaScript hatte traditionell den Ruf, nicht besonders schnell zu sein. Noch schlimmer war es, Live-JavaScript-Anwendungen – insbesondere Node.js-Server – zu debuggen, besonders wenn es um asynchrone Programmierung geht. Glücklicherweise ändern sich die Zeiten. Dieser Artikel untersucht, wie wir asynchrone Funktionen und Versprechen in V8 (und teilweise auch in anderen JavaScript-Engines) optimiert haben und beschreibt, wie wir die Debugging-Erfahrung für asynchronen Code verbessert haben.

Verbesserung der `DataView`-Leistung in V8

· 9 Minuten Lesezeit
Théotime Grohens, <i lang="fr">der Gelehrte von Daten-Ansicht</i>, und Benedikt Meurer ([@bmeurer](https://twitter.com/bmeurer)), professioneller Leistungsfreund

DataViews sind eine der zwei möglichen Methoden, um Speicher auf niedriger Ebene in JavaScript zuzugreifen, die andere ist TypedArrays. Bislang waren DataViews in V8 viel weniger optimiert als TypedArrays, was zu einer schlechteren Leistung bei Aufgaben wie grafikintensiven Workloads oder beim Decodieren/Kodieren von Binärdaten führte. Die Gründe dafür waren hauptsächlich historische Entscheidungen, wie die Tatsache, dass asm.js TypedArrays statt DataViews gewählt hat, und so waren Engines motiviert, sich auf die Leistung von TypedArrays zu konzentrieren.

Feiern von 10 Jahren V8

· 13 Minuten Lesezeit
Mathias Bynens ([@mathias](https://twitter.com/mathias)), V8-Historiker

In diesem Monat jährt sich zum 10. Mal die Veröffentlichung von nicht nur Google Chrome, sondern auch des V8-Projekts. Dieser Beitrag gibt einen Überblick über die wichtigsten Meilensteine des V8-Projekts in den letzten 10 Jahren sowie die Jahre davor, als das Projekt noch geheim war.

Chrome begrüßt Speedometer 2.0!

· 3 Minuten Lesezeit
die Blink- und V8-Teams

Seit der ersten Veröffentlichung von Speedometer 1.0 im Jahr 2014 verwenden die Blink- und V8-Teams den Benchmark als Proxy für die reale Nutzung von beliebten JavaScript-Frameworks, und wir haben auf diesem Benchmark erhebliche Geschwindigkeitssteigerungen erzielt. Wir haben unabhängig überprüft, dass diese Verbesserungen reale Benutzerergebnisse liefern, indem wir sie an echten Websites gemessen haben und festgestellt haben, dass Verbesserungen der Ladezeiten beliebter Websites auch die Speedometer-Wertung verbessern.

Die Einführung des Web Tooling Benchmark

· 6 Minuten Lesezeit
Benedikt Meurer ([@bmeurer](https://twitter.com/bmeurer)), JavaScript Performance Juggler

Die JavaScript-Leistung war für das V8-Team schon immer wichtig, und in diesem Beitrag möchten wir einen neuen JavaScript Web Tooling Benchmark vorstellen, den wir kürzlich verwendet haben, um einige Leistungsengpässe in V8 zu identifizieren und zu beheben. Sie wissen möglicherweise bereits über V8s starkes Engagement für Node.js Bescheid, und dieses Benchmark erweitert dieses Engagement, indem es speziell Leistungstests mit gängigen Entwickler-Tools durchführt, die auf Node.js basieren. Die Tools im Web Tooling Benchmark sind dieselben, die von Entwicklern und Designern heute verwendet werden, um moderne Websites und Cloud-basierte Anwendungen zu erstellen. In Fortsetzung unserer laufenden Bemühungen, den Fokus auf realistische Leistung statt auf künstliche Benchmarks zu richten, haben wir das Benchmark mit tatsächlichem Code erstellt, den Entwickler jeden Tag ausführen.

Optimierung von ES2015-Proxys in V8

· 8 Minuten Lesezeit
Maya Armyanova ([@Zmayski](https://twitter.com/Zmayski)), Optimierer von Proxys

Proxys sind seit ES2015 ein integraler Bestandteil von JavaScript. Sie ermöglichen das Abfangen grundlegender Operationen an Objekten und die Anpassung ihres Verhaltens. Proxys sind ein Kernbestandteil von Projekten wie jsdom und der Comlink RPC-Bibliothek. Kürzlich haben wir viel Aufwand in die Verbesserung der Leistung von Proxys in V8 investiert. Dieser Artikel beleuchtet allgemeine Muster zur Leistungsverbesserung in V8 und speziell für Proxys.

Ruhestand von Octane

· 6 Minuten Lesezeit
das V8-Team

Die Geschichte der JavaScript-Benchmarks ist eine Geschichte ständiger Weiterentwicklung. Während sich das Web von einfachen Dokumenten zu dynamischen Client-seitigen Anwendungen entwickelte, wurden neue JavaScript-Benchmarks entwickelt, um Arbeitslasten zu messen, die für neue Anwendungsfälle wichtig wurden. Dieser ständige Wandel hat dazu geführt, dass einzelne Benchmarks eine begrenzte Lebensdauer haben. Wenn Webbrowser- und virtuelle Maschinen-Implementierungen (VM) beginnen, spezifische Testfälle übermäßig zu optimieren, hören Benchmarks auf, effektive Stellvertreter für ihre ursprünglichen Anwendungsfälle zu sein. Einer der ersten JavaScript-Benchmarks, SunSpider, bot frühzeitig Anreize zur Bereitstellung schneller optimierender Compiler. Allerdings stießen VM-Ingenieure auf die Einschränkungen von Mikro-Benchmarks und fanden neue Wege zur Optimierung um die SunSpider Einschränkungen herum, was dazu führte, dass die Browsergemeinschaft SunSpider in den Ruhestand versetzte als empfohlenen Benchmark.