Firefox 3.1: Javascript bekommt massive Beschleunigung

24. August 2008, 11:05
36 Postings

"Tracemonkey" soll auf Dauer ähnliche Geschwindigkeiten wie Binär-Code bringen - Einzelne Funktionen bis zu 40-mal schneller

Mit der Version 3 des Firefox hat das Mozilla-Projekt dem Open Source Browser auch eine Fülle von Performance-Optimierungen beschert. Vor allem Javascript-Operationen laufen nun um ein vielfaches flotter als noch bei Firefox 2.x. Für Firefox 3.1 will man hier nun noch einmal erheblich nachbessern, wie Mozilla CTO Brendan Eich in einem Weblog-Eintrag verrät.

Speed

Mit "Tracemonkey" hat man der eigenen Javascript-Engine einen Just-in-Time-Compiler verpasst, eine Neuerung, die Mozilla-Entwickler Christopher Blizzard vor einigen Wochen im Interview mit dem WebStandard angekündigt hatte. Dabei setzt man auf das von Michael Franz und Andreas Gal an der Universität von Kalifornien entwickelte Konzept der "Trace Trees": Beim ersten Durchlauf werden die Aufrufe kompiliert gespeichert und können so bei jedem weiteren Aufruf wesentlich schneller genutzt werden.

Tests

Auch wenn man mit der Entwicklung dieser Optimierungen erst vor rund zwei Monaten begonnen hat, so zeigen sich doch bereits beeindruckende Geschwindingkeitszuwächse: In manchen Javascript-Tests zeigt sich eine Beschleunigung um Faktor 20 bis 40. Bei einem Testlauf mit dem unabhängigen Sunspider-Test, der zahlreiche Javascript-Funktionen hintereinander ablaufen lässt, bleibt davon noch immer eine  Beschleunigung um den Faktor 1,496, wie ein kurzer Test des WebStandard zeigt.

Benchmark

Dass die Zuwächse hier nicht größer sind, liegt dabei aber auch an der Funktionsweise des Tests, wie Eich herausstreicht: Denn Sunspider benutzt auch viele String-Operationen, die ohnehin schon jetzt in binärem Code ablaufen, entsprechend sind rein mit Javascript-Optimierungen keine großen Sprünge beim Gesamtscore mehr möglich.

Nutzen

Durch Tracemonkey will man den Weg für wesentliche komplexere Web-Anwendungen bereiten. Welche Auswirkungen die neuen Optimierungen auf reale Anwendungen haben, demonstriert Mozilla-Entwickler Mike Schroepfer in einer Screencast: Dabei zeigt er die Benutzung von Bildbearbeitungsfunktionen direkt im Browser, etwas das mit Firefox 3.1 / Tracemonkey nun rund siebenmal so flott ist.

Ausblick

Für die Zukunft will man bei Mozilla noch weitere Teile der Software mit Tracing optimieren, bis zu den DOM-Methoden, weitere Speed-Zuwächse sind also zu erwarten. Ein nicht zu unterschätzender Effekt von "Tracemonkey": Auch der Firefox selbst wird flotter, da Teile der Software selbst in Javascript geschrieben wurden.

Test

Tracemonkey ist bereits in aktuellen "Nightlies" von Firefox 3.1 enthalten, allerdings auf Grund seines recht frühen Zustands noch von Haus aus deaktivert: Wer selbst damit experimentieren will, muss zunächst die Option javascript.options.jit.content in about:config aktivieren. (Andreas Proschofsky, derStandard.at, 24.08.2008)

Share if you care.