Firefox 9: Typinferenz macht JavaScript rund 30% schneller
In der aktuellen Entwicklerversion von Firefox 9 wurde die JavaScript-Engine um Typinferenz erweitert. Vereinfacht gesagt ist es so, dass es in nahezu jeder Programmiersprache Typen für Variablen und Funktionen gibt, beispielsweise Ganzzahlen, Dezimalzahlen oder Zeichenketten. Während in statisch typisierten Sprachen der Typ einer jeden Funktion und Variable explizit festgelegt werden muss, muss sich der Programmierer in dynamisch typisierten Sprachen wie JavaScript nicht die Arbeit machen, den Typen explizit anzugeben womit die Typzuweisung zur Laufzeit geschieht, was auf Lasten der Performance gehen kann. Typinferenz schließt hier die Lücke – auf das Schreiben der Typangaben kann verzichtet werden, die Typen werden anhand von Typisierungsregeln und restlicher Angaben hergeleitet.
Typinferenz ist ein sehr komplexes Projekt, in welchem mehr als ein Jahr Entwicklungszeit durch Mozilla-Entwickler Brian Hackett steckt. Das Ergebnis kann sich sehen lassen: Nach Angaben von David Mandelin, Leiter der Entwicklung der JavaScript-Engine von Firefox, konnte in Googles v8-Benchmark eine 30% bessere Performance mit Typinferenz im Vergleich zu ohne Typinferenz gemessen werden. In Mozillas eigenem Benchmark Kraken kam man sogar auf beeindruckende 44% Performancegewinn. In unabhängigen Benchmarks von extremetech.com konnte ebenfalls eine 20 bis 30% bessere JavaScript-Performance festgestellt werden. Natürlich sind Benchmarks immer stark systemabhängig und mit Vorsicht zu genießen, geben aber in jedem Fall eine klare Tendenz an.
Sollte es keine gravierenden Probleme mit der Typinferenz geben, wird dies eines der neuen Features von Firefox 9 werden, welcher aller Voraussicht nach am 20. Dezember dieses Jahres erscheinen wird.
schöner Artikel..
„Natürlich sind Benchmarks immer stark systemabhängig und mit Vorsicht zu genießen, geben aber in jedem Fall eine klare Tendenz an.°
Stimmt – VERGLEICHEN kann man eilich immer nur „mit sich selbst“. Als ich mir im August 09 einen neuen PC gekauft hatte, da hatte ich zufällig am Vortag den FF mit SunSpider auf dem „alten“ (der war abgeraucht) getestet – und den neuen gleich wieder. Mit dem selben FF, mit dem selben Profil (der alte PC war kaputt, aber das Backup auf der externen ja nicht) – da war SunSpider fast 2,5x so schnell. DAS konnte nur an der Hardware liegen.
Ich schätz, wenn man den aktuellen FF, Opera, Chrome „normal“ testet (also vielleicht 100 gleiche Seiten auf allen aufruft), das die ungefähr ähnlich schnell sind…
Interessanter Artikel.
Bis Firefox dauert es wohl noch eine Weile, es ist ja kürzlich erst Firefox 6 erschienen.
Ob die Entwickler das bis Mitte Dezember schaffen werden…?
Da Typinferenz ja bereits in der aktuellen Entwicklerversion von Firefox implementiert ist, wird das Feature aller Voraussicht nach auch Ende des Jahres in Firefox 9 drin sein. Der Release-Zyklus ist mit sechs Wochen ja fix, siehe:
https://wiki.mozilla.org/RapidRelease/Calendar