Deutlich mehr JavaScript-Performance mit Firefox 9
Die erste Beta-Version des Firefox 9 steht bereit. Die Finale Version ist für Ende Dezember geplant.
In der neuen Version tut sich an der Oberfläche des alternativen Browsers relativ wenig. Die meisten Änderungen betreffen den zugrundeliegenden Code. Eine der wichtigsten Neuerungen ist die Technologie Typinferenz (TI), durch die die JavaScript-Performance deutlich steigen soll.
Wie der Mozilla-Entwickler Brian Bondy in einem Blog erklärt, generiert Firefox’ JavaScript-Engine “SpiderMonkey” jetzt automatisch Typinformationen zu JavaScript-Applikationen, indem sie den Programmcode analysiert und die Werttypen während der Ausführung überwacht.
Diese Typinformationen werden anschließend bei der Just-in-Time-Kompilierung (JIT) verwendet, um effizienteren Code zu erstellen. Der in Firefox 9 integrierte JIT-Compiler wurde so modifiziert, dass er diese Typinformationen nutzen kann. Der neue Kompilierungsmodus, den Firefox 9 standardmäßig einsetzt, steigert die Leistung des Browsers in Benchmarks, wie Kraken oder V8, laut Bondy um über 30 Prozent und beschleunigt Seiten mit vielen JavaScript-Inhalten deutlich.
Während in statisch typisierten Sprachen der Typ von Funktionen und Variablen vom Programmierer festgelegt werden muss, geschieht die Typzuweisung bei JavaScript in der Laufzeit. Darunter leidet häufig die Leistung der Anwendung. Mit Typinferenz will Mozilla diesen Nachteil von JavaScirpt ausgleichen. Weitere Informationen zu der Technik finden sich in dem technischen Aufsatz “Fast and Precise Hybrid Type Inference for JavaScript” (PDF).
Außer der JavaScript-Performance haben die Firefox-Entwickler auch den Support von Mac OS X 10.7 Lion optimiert. Die Beta integriert sich dank neugestalteter Toolbar und Symbolen optisch besser in das aktuelle Apple-Betriebssystem. Sie unterstützt jetzt auch Zweifinger-Wischgesten für die Navigation und erleichtert die Nutzung mehrerer Monitore.
JavaScript-Entwickler können dank “Do Not Track JavaScript Detection” ab sofort erkennen, wenn Anwender die Privatsphärefunktion “Do not track” nutzen. Sie soll verhindern, dass Websites Nutzeraktivitäten verfolgen. Ebenfalls neu ist Support für Chunked XHR, wodurch Websites Daten, die Teil eines großen XHR-Downloads sind, noch während des Herunterladens empfangen können. Das soll Entwicklern dabei helfen, Sites und Webapplikationen zu beschleunigen.
Schließlich beseitigt die Beta noch einige Stabilitätsprobleme. Eine Liste aller Neuerungen ist in den Release Notes zu finden.