JavaScript-Performance: Mozilla sagt, dass JägerMonkey gute Fortschritte macht

Kein Kommentar Autor: Jürgen (jdo)

Firefox LogoJägerMoney soll mit Firefox 4 erscheinen und der JavaScript-Geschwindigkeit von Firefox einen Turbo verpassen. Erstmalig ist die JägerMonkey-Erweiterung schneller als das von Firefox 3.6 verwendete TraceMonkey. Laut Entwickler David Anderson hat JägerMonkey das Paket TraceMonkey nur ganz knapp im V8 Benchmark besiegt. Allerdings wird sich der Abstand während der weiteren Entwicklung noch vergrößern.

JägerMonkey Benchmarks

JägerMonkey Benchmarks - schwarze Linie. Googles JavaScript Engine ist die grüne Linie. (Quelle: bailopan.net)

JägerMonkey ist ein “Method JIT Kompiler”, der den Nitro-Assembler von Apples WebKit-Projekt verwendet. Diesen verwenden auch Googles Chrome und Apples Safari. Das ultimative Ziel ist es, diesen Kompiler mit TraceMonkey zu verheiraten. Somit könnte Firefox je nach Notwendigkeit beide benutzen. Ob dieser Spagat jedoch gelingt, steht noch in den Sternen.

Seit der Vorstellung des JägerMonkey-Projekts Ende Februar 2010 hat Mozilla die Erweiterung noch mal von Grund auf neu geschrieben. Im Juni waren die Entwickler dann so weit, dass man an der Optimierung arbeiten konnte. Die neue Version ist nun schneller als die alte.

Das Ziel ist, mit der Konkurrenz wieder mithalten zu können. Man liebäugelt sogar ein bisschen damit, die anderen Browser zu schlagen.

The goal of JägerMonkey is to be as fast or faster than the competition, whether or not tracing is enabled. We have to integrate the two in a way that gives us a competitive edge. We didn’t do this in the first iteration.

TraceMonkey beschleunigt die Performance, indem es Code Loops erkennt und diese umwandelt. Hier ist Mozilla der Konkurrenz sogar einen Schritt voraus. Aber es gibt Situationen, in denen dieses Tracing nicht funktioniert. Speziell bei Rekursionen und viel Nesting sei es schwer gute Traces zu bauen, sagte Anderson. Passiert dies im Moment, teleportiert sich Firefox zurück in das Jahr 2007 und verwendet den alten Interpreter. Dementsprechend langsam ist die Geschwindigkeit, erklärt Anderson.

JägerMonkey wurde erschaffen, dieses Problem zu lösen. Sollte TraceMonkey nicht funktionieren, ist JägerMonkey an der Reihe, den Code umzuwandeln. Beide sollen unter der Haube von Mozillas JavaScript Engine SpiderMonkey laufen. JägerMonkey wird dabei Nitro aus WebKit und TraceMonkey seinen eigenen Code Assembler Nanojit nutzen. Es sei noch viel zu tun, dennoch hofft Anderson, bis zum 1. September 2010 fertig zu sein.




 Alle Kommentare als Feed abonnieren

Kommentare sind geschlossen.