Zum Hauptinhalt springen

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.

Seitdem hat sich JavaScript schnell weiterentwickelt und mit ES2015 und späteren Standards viele neue Sprachfunktionen hinzugefügt. Das gilt auch für die Frameworks selbst, und so ist Speedometer 1.0 im Laufe der Zeit veraltet. Die Verwendung von Speedometer 1.0 als Optimierungsindikator birgt daher das Risiko, keine neueren Code-Muster zu messen, die aktiv verwendet werden.

Die Blink- und V8-Teams begrüßen die kürzliche Veröffentlichung des aktualisierten Speedometer 2.0 Benchmarks. Die Anwendung des ursprünglichen Konzepts auf eine Liste zeitgenössischer Frameworks, Transpiler und ES2015-Funktionen macht den Benchmark wieder zu einem erstklassigen Kandidaten für Optimierungen. Speedometer 2.0 ist eine großartige Ergänzung für unsere Werkzeugkiste für reale Leistungsbenchmarks.

Chromes Fortschritt bisher

Die Blink- und V8-Teams haben bereits eine erste Runde von Verbesserungen abgeschlossen, die die Bedeutung dieses Benchmarks für uns unterstreichen und unsere Reise fortsetzen, uns auf reale Leistung zu konzentrieren. Verglichen mit Chrome 60 vom Juli 2017 haben wir mit dem neuesten Chrome 64 auf einem Macbook Pro Mitte 2016 (4 Kerne, 16GB RAM) etwa eine 21%ige Verbesserung der Gesamtbewertung (Läufe pro Minute) erreicht.

Vergleich der Speedometer-2-Scores zwischen Chrome 60 und 64

Schauen wir uns die einzelnen Punkte von Speedometer 2.0 genauer an. Wir haben die Leistung der React-Laufzeit durch die Verbesserung von Function.prototype.bind verdoppelt. Vanilla-ES2015, AngularJS, Preact und VueJS haben sich durch Beschleunigung des JSON-Parsings und verschiedene andere Leistungsverbesserungen um 19%–42% verbessert. Die Laufzeit der jQuery-TodoMVC-App wurde durch Verbesserungen in der DOM-Implementierung von Blink reduziert, darunter leichtere Formularelemente und Anpassungen an unserem HTML-Parser. Zusätzliche Optimierungen der Inline-Caches von V8 in Kombination mit dem Optimierungskompilator erzielten Verbesserungen über alle Bereiche hinweg.

Ergebnisverbesserungen für jeden Subtest von Speedometer 2 zwischen Chrome 60 und 64

Eine wesentliche Änderung gegenüber Speedometer 1.0 ist die Berechnung der Endbewertung. Zuvor begünstigte der Durchschnitt aller Bewertungen die Arbeit an nur den langsamsten Punkten. Wenn man die absoluten Zeiten betrachtet, die für jeden einzelnen Punkt aufgewendet werden, sieht man beispielsweise, dass die EmberJS-Debug-Version etwa 35-mal so lange dauert wie der schnellste Benchmark. Daher hat die Fokussierung auf EmberJS-Debug das größte Potenzial, um die Gesamtbewertung zu verbessern.

Speedometer 2.0 verwendet das geometrische Mittel für die Endbewertung und bevorzugt gleiche Investitionen in jedes Framework. Lassen Sie uns unsere kürzliche 16,5%ige Verbesserung von Preact betrachten. Es wäre ziemlich unfair, auf die 16,5%ige Verbesserung zu verzichten, nur weil ihr Anteil an der Gesamtzeit gering ist.

Wir freuen uns darauf, weitere Leistungsverbesserungen für Speedometer 2.0 und damit für das gesamte Web zu bringen. Bleiben Sie dran für weitere Leistungs-High-Fives.