Benchmarks: JetStream 1.1 verbessert Latenztests

Das WebKit-Team hat seine Benchmark-Suite zum Testen der Performance der JavaScript-Engine überarbeitet, sodass er nun genauere Ergebnisse liefern soll, wenn es um Reaktionsbereitschaft geht.

In Pocket speichern vorlesen Druckansicht
Benchmarks: JetStream 1.1 verbessert Latenztests
Lesezeit: 3 Min.
Von
  • Julia Schmidt

Die Benchmark-Suite JetStream steht nach einigen Verbesserungen der Latenztests in Version 1.1 zur Verfügung. Sie dient den Programmierern von WebKit dazu, die Leistungsfähigkeit ihrer JavaScript-Engine zu überprüfen. Neben einer Überarbeitung der Tests, die für das Feststellen der Reaktionsbereitschaft integriert sind, haben die Entwickler auch begonnen, ihre Pläne zur Verbesserung der Suite umzusetzen. Mit der Zeit sollen immer mehr der kleinen einfachen Tests durch größere und komplexere abgelöst werden.

Als ersten Schritt in diese Richtung wird in der Bekanntmachung der Austausch eines cordic genannten Latenztests durch eine JavaScript-Implementierung des CDx-Echtzeit-Benchmarks (einem Kollisionsdetektor) aufgeführt. Er kommt beispielsweise in Java- und C-Projekten zum Vergleich der schlechtesten Performance-Werte zum Einsatz. CDjs wird in JetStream als Benchmark genutzt, indem es 200 Frames lang 1000 Flugzeuge simuliert, die ab und an kollidieren. Als Endergebnis der Messung dient die Inverse des Mittelwerts der zehn schlechtesten Zeiten, die für die Ausführung gebraucht wurden. Bei dem Umsetzung handelt es sich um eine leicht abgewandelte Variante der Java-Implementierung. Sie unterscheidet sich insofern, als dass zum Mappen keine Hash-Tabellen zum Einsatz kommen sondern Rot-Schwarz-Bäume und dass nicht mit der selben Striktheit versucht wird, Objekte wiederzuverwenden. Das soll dafür sorgen, dass der Test den grundlegenden Ideen des CDx-Benchmarks (wie dem Echtzeitaspekt) näher kommt.

Darüber hinaus ist den Entwicklern aufgefallen, dass die Berechnungen, die herausfinden sollen, wie nah die schlechteste Leistung eines Browsers dessen durchschnittlichem Verhalten kommt, in einigen Fällen schlechtes Verhalten belohnen. Da bisher der reziproke Wert des quadratischen Mittels aus 1000 Messungen genutzt wurde, konnte es sein, dass Browser, die durchgängig niedrige Leistungen erbrachten, eine bessere Bewertung erhielten als die, die Aufgabe zwar schneller erledigten, aber zwischen verschiedenen Werten pendelten. Daher haben sie die Rechnung so angepasst, dass von nun an die schlechtesten 0,5 Prozent der Messungen gemittelt werden und das Ergebnis das quadratische Mittel ersetzt. So wollen die Entwickler vermeiden, dass Rauschen die Messung zu sehr beeinflusst und trotzdem die schlechtesten Fälle, in denen etwa die Garbage Collection von WebKit den ganzen Heap untersuchen muss, bestmöglich abbilden.

JetStream ist eine Benchmark-Suite die viele Einzelelemente aus Suites wie SunSpider und V8 umfasst. Sie kann beim Überprüfen von Latenzen und Durchsatz helfen. Bei ersterem sind die Anlaufzeit und die schlechtesten Ausführungszeiten von Interesse, beim zweiten wird hingegen der Durchschnitt im stationären Zustand gemessen. (jul)