Firefox 3.1: TraceMonkey beschleunigt Javascript erheblich
TraceMonkey macht einzelne Javascript-Funktionen 20 mal schneller
Die Optimierungstechnik TraceMonkey soll die Ausführung von Javascript in Firefox drastisch beschleunigen und wird in der kommenden Version des Browsers enthalten sein. In einzelnen Teilbereichen wird JavaScript damit 20- bis 40-mal schneller.
Javascript ist längst viel mehr als eine Spielerei um Knöpfe auf Websites einzufärben oder Formulareingaben zu prüfen. Auf der einen Seite nimmt sich die ECMA historisch gewachsenen Unzulänglichkeiten von Javascript an, auf der anderen Seite werden die Implementierungen besser und deutlich schneller, so dass sich ganz neue Dinge mit Javascript realisieren lassen.
In die letztgenannte Kategorie fällt auch TraceMonkey, ein trace-basierter JIT-Compiler der JavaScript beschleunigt. Das Konzept der "trace trees" wurde von Andreas Gal und Michael Franz an der Universität Kalifornien entwickelt und zusammen mit einigen Mozilla-Entwicklern im Rahmen des Tamarin-Projekts auf die kommende Firefox-Generation übertragen.
SunSpider: Firefox 3.1 Nightly Build mit und ohne TraceMonkey
Der Tracing-Mechanismus zeichnet die unterschiedlichen Pfade, die beim Durchlauf einer Schleife auftreten können, während der Laufzeit auf und generiert kompilierten Code, der erneut genutzt werden kann, wenn später ein solcher Pfad wieder erreicht wird. Details erklärt Andreas Gal in einem Blog-Eintrag.
Bis diese neue Javascript-Engine zum Einsatz kommt, wird noch einige Zeit vergehen. In den letzten zwei Monaten integrierten daher einige Mozilla-Entwickler zusammen mit Gral und Franz die Technik SpiderMonkey, die in Firefox 3 eingesetzte Javascript-Engine.
Seit Freitag, den 22. August 2008, ist der Code in den aktuellen Entwicklungszweig für Firefox 3.1 integriert und erste, von den Entwicklern veröffentlichte Benchmarks, versprechen einen deutlichen Geschwindigkeitszuwachs.
In den von Javascript-Erfinder Brendan Eich veröffentlichten Benchmarks war die Vorabversion von Firefox 3.1 mit TraceMonkey, in dem vom Webkit-Team veröffentlichten JavaScript-Benchmark, SunSpider rund 1,83mal schneller als Firefox 3.0. In Einzeltests war die aktuelle Entwicklerversion mehr als 30-mal schneller. Allerdings unterscheiden sich die beiden Versionen auch durch weitere Optimierungen.
In einem von Golem.de durchgeführten Vergleich war die aktuelle Entwicklerversion mit aktiviertem TraceMonkey im Schnitt 1,57mal schneller als die gleiche Version mit deaktiviertem TraceMonkey. Teilweise lag die Beschleunigung bei mehr als dem 22fachen. Der Benchmark verwendet allerdings zahlreiche komplexe Stringoperationen, die ohnehin in nativen Code ablaufen und somit durch Änderungen an der Javascript-Engine kaum beschleunigt werden können.
Zudem arbeiten die Mozilla-Entwickler an weiteren Ansätzen um ihre Javascript-Engines zu beschleunigen. Wie sich die Geschwindigkeitszuwächse in realen Applikationen auswirken, zeigte Mike Schroepfer mit einer Browser-basierten Bildbearbeitung.
Standardmäßig ist TraceMonkey in den NightlyBuilds deaktiviert und kann bei about:config unter javascript.options.jit.content aktiviert werden. Integriert ist der TraceMonkey-Code für die Plattformen x86, x86-64 und ARM.
Speziell für Mozilla hat die Beschleunigung von Javascript noch eine direkte Bedeutung: Teile des Browsers sind in Javascript realisiert, so dass Mozilla selbst von der Beschleunigung profitiert.
Erste Frage : Warum hast du deinen Firefox 9 Tage gestartet? Wenn ich in Urlaub fahre...
habt ihr nix anderes zu tun als euch gegenseitig fertig zu machen? ^^ ist zwar amüsant...
Nur blöd dass so wie du das machen willst der User erst weider einstellen kann was er...
Der Vorposter ist zweifelsfrei ein Trottel, aber ich bin mir nicht sicher ob du nich...