JägerMonkey

JägerMonkey

JägerMonkey est un compilateur à la volée pour le moteur d'exécution JavaScript SpiderMonkey. Il a été créé par la fondation Mozilla pour le moteur de rendu Gecko.

Il a été créé afin d'améliorer les performances d'exécution JavaScript du moteur SpiderMonkey augmenté de TraceMonkey. Contrairement à TraceMonkey qui est un compilateur à la volée basé sur les arbres de traces, JägerMonkey est un compilateur à la volée classique basé sur l'optimisation de l'exécution d'une méthode.

Introduit avec la version 4 de Firefox, ses performances augmenteront sensiblement dans la version 9 par le jeu de l'inférence de types.

Principe de fonctionnement

TraceMonkey étant extrêmement rapide lorsque le code Javascript reste sur les traces, le but est de pouvoir exécuter le code Javascript hors des traces plus rapidement que ce que l'interpréteur SpiderMonkey ne peut le faire. C'est là que JägerMonkey intervient en compilant à la volée des méthodes entières qui vont pouvoir bénéficier d'un code d'exécution générique (capable de prendre en compte tous les cas, comme SpiderMonkey) mais compilé nativement (donc plus rapide) [1]. De plus, un compilateur de méthodes ne compile le code d'une méthode qu'une seule fois, contrairement au compilateur de traces qui ne peut compiler qu'une seule trace à la fois.

JägerMonkey utilise le générateur de code natif Nitro (de WebKit), au lieu d'utiliser nanojit (celui de TraceMonkey) car le premier est très rapide alors que le deuxième réalise des optimisations qui ralentissent la génération de code[2].

Dans le futur, les développeurs envisagent de plus intégrer les deux compilateurs JIT: le compilateur de méthodes pourra identifier les boucles et invoquera le compilateur de traces et inversement, si le compilateur de traces juge qu'une méthode est trop compliquée pour qu'il puisse la compiler, il pourra invoquer le compilateur de méthodes[1].

Résultats

L'équipe de Mozilla a mis en place une page web pour observer les résultats de ce travail d'optimisation et pouvoir le comparer aux autres moteurs Javascript[3]. Cette page montre les vitesses respectives de Mozilla avec TraceMonkey (moz tracing JIT), JägerMonkey (moz method JIT), TraceMonkey + JägerMonkey (moz method+tracing), Google Chrome V8 (google v8), WebKit (apple nitro), et SpiderMonkey tout seul (moz w/o JIT).

Notes et références


Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article JägerMonkey de Wikipédia en français (auteurs)

Игры ⚽ Поможем написать реферат

Regardez d'autres dictionnaires:

  • SpiderMonkey — Тип Движок JavaScript Автор Брендан Айк Разработчики Mozilla Foundation/Mozilla Corporation Написана на Си/C++ Аппаратная платформа Кроссплатформенное программно …   Википедия

  • Firefox 4 — Mozilla Firefox 4 Firefox 4.0 o …   Wikipedia

  • SpiderMonkey — Maintainer Mozilla Foundation Entwickler Mozilla Foundation Betriebssystem plattformübergreifend Programmier­sprache C Lizenz …   Deutsch Wikipedia

  • TraceMonkey — est un compilateur à la volée pour le moteur d exécution JavaScript SpiderMonkey. TraceMonkey est un moteur d enregistrement, de compilation à la volée et d exécution de traces d exécution de code JavaScript créé par la fondation Mozilla pour le… …   Wikipédia en Français

  • Mozilla Firefox — « Firefox » redirige ici. Pour les autres significations, voir Firefox (homonymie) …   Wikipédia en Français

  • Mozilla Firefox — Запрос «Firefox» перенаправляется сюда; см. также другие значения …   Википедия

  • История Mozilla Firefox — Объединить Mozilla Firefox …   Википедия

  • Dynamic HTML — HTML HTML and HTML5 Dynamic HTML XHTML XHTML Mobile Profile and C HTML Canvas element Character encodings Document Object Model Font family HTML editor HTML element HTML Frames HTML5 video …   Wikipedia

  • JScript — Appeared in 1996 Developer Microsoft Stable release 9.0 (March 2011) Typing discipline dynamic, weak, duck Major implementations W …   Wikipedia

  • Rhino (JavaScript engine) — Rhino Developer(s) Mozilla Foundation / Mozilla Corporation Stable release 1.7R3 / May 9, 2011; 6 months ago ( …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”