Mozilla schickt Jägermonkey ins Rennen
Wenn sie ihre Stärken ausspielen kann, ist Mozilla Javascript-Engine Tracemonkey der Konkurrenz überlegen. Doch nicht in allen Situationen kann das sogenannte Tracing genutzt werden, dann greift Firefox auf seinen alten Javascript-Interpreter zurück, der deutlich langsamer ist. Andere Javascript-Engines verzichten auf Tracing und verfolgen einen einfacheren Ansatz, bei dem komplette Methoden in Assembler übersetzt werden. Dieser Ansatz ist zwar etwas langsamer als Tracing, kann aber sehr viel häufiger genutzt werden, so dass diese Javascript-Engines in Benchmarks und auch im realen Einsatz besser abschneiden.
Mit Jägermonkey haben einige Mozilla-Entwickler begonnen, dieses Problem anzugehen. Sie verfolgen dabei den Ansatz, der sich bereits bei anderen Javascript-Engines bewährt hat, und verknüpfen ihn mit Tracing. Das Ziel: Statt entweder sehr schnell oder sehr langsam zu sein, soll die resultierende Engine sehr schnell (Tracing) und oder zumindest schnell sein, eben wenn das Tracing nicht zum Tragen kommt.
Dazu bedarf es zunächst einmal eines schnellen Assemblers, um nativen Code zu generieren. Da der Native-Code-Compiler von Tracemonkey, Nanojit(öffnet im neuen Fenster) für Jägermonkey aber nicht besonders gut geeignet ist, griffen die Mozilla-Entwickler auf Apples Javascript-JIT Nitro(öffnet im neuen Fenster) zurück.
Noch steht die Entwicklung am Anfang, doch bereits jetzt, ohne nennenswerte Optimierungen, ist der neue Methoden-JIT im Javascript-Benchmark Sunspider rund 30 Prozent schneller als der alte Interpreter.
Details zu Jägermonkey(öffnet im neuen Fenster) hat der Entwickler David Anderson in einem Blogeintrag(öffnet im neuen Fenster) zusammengefasst. Der ebenfalls am Projekt beteiligte David Mandelin(öffnet im neuen Fenster) beschreibt im Detail, wie die Geschwindigkeitssteigerung zusammenkommt.
- Anzeige Hier geht es zum Handbuch für Softwareentwickler bei Amazon Wenn Sie auf diesen Link klicken und darüber einkaufen, erhält Golem eine kleine Provision. Dies ändert nichts am Preis der Artikel.