TraceMonkey

TraceMonkey

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 moteur de rendu Gecko. Il a fait son apparition dans Mozilla Firefox 3.5.

Il a été créé afin d'améliorer les performances d'exécution JavaScript du moteur SpiderMonkey et de permettre ainsi aux développeurs Web de proposer des applications Web autrefois impossibles à réaliser à cause des performances insuffisantes du JavaScript.

Sommaire

Principe de fonctionnement

Article détaillé : Arbre de traces.

TraceMonkey réalise la compilation à la volée d'arbre de traces. Les arbres de traces sont une structure de données utilisée pour tracer (enregistrer dans une trace) le code exécuté sur les points chauds, et le compiler. Quand les point chauds du code sont à nouveau exécutés, le code compilé est exécuté à la place.

Mise en œuvre

Dans Firefox, l'interpréteur JavaScript s'appelle SpiderMonkey. Ce dernier a été modifié pour s'interfacer avec TraceMonkey, le moteur de traces. SpiderMonkey interprète le code JavaScript, surveille les exécutions de boucles et compte le nombre d'itérations. Lorsque le seuil du nombre d'exécution d'une itération est atteint, TraceMonkey enregistre les traces, les compile en code natif grâce a nanojit et les exécute [1].

Réussites et limites

Les développeurs de Mozilla assurent que TraceMonkey est le moteur JavaScript le plus rapide au monde, lorsqu'il parvient à rester sur les traces compilées[2]. Malheureusement un certain nombre de conditions rendent difficiles voire impossible l'utilisation de traces [3]:

  • Le code contenant beaucoup de branches de contrôle qui multiplie le nombre de traces,
  • Le code contenant beaucoup de combinaisons de types qui multiplie le nombre de traces,
  • Le code utilisant l'instruction eval qui peut générer tout type de code.

Dans ces cas là, l'exécution de code JavaScript se fait alors avec l'interpréteur SpiderMonkey qui est alors beaucoup plus lente. Afin de pallier cela, Mozilla a lancé le projet JägerMonkey qui vise à utiliser un compilateur à la volée pour accélérer l'exécution du code situé hors des traces.

Notes et références

  1. (en) Tracing JIT sur Mozilla wiki
  2. (en) a quick note on JavaScript engine components, Christopher Blizzard
  3. (en) Starting JägerMonkey, David Mandelin

Voir aussi

  • Tamarin, la machine virtuelle JavaScript devant équiper Mozilla Firefox 3.5 à l'origine, avant que TraceMonkey ne soit choisi à sa place. Cependant, nanojit, le composant de génération de code est utilisé dans TraceMonkey.
  • JägerMonkey le compilateur à la volée alternatif pour le moteur d'exécution JavaScript SpiderMonkey de Firefox.
  • V8, le moteur d'exécution Javascript à haute performance inclus dans Google Chrome, concurrent de TraceMonkey
  • SquirrelFish Extreme, le moteur d'exécution Javascript à haute performance inclus dans WebKit, concurrent de TraceMonkey

Wikimedia Foundation. 2010.

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

Игры ⚽ Поможем сделать НИР

Regardez d'autres dictionnaires:

  • TraceMonkey — Este artículo o sección se encuentra desactualizado. Es posible que la información suministrada aquí haya cambiado o sea insuficiente. Se ha sugerido que …   Wikipedia Español

  • TraceMonkey — SpiderMonkey это кодовое имя первого в истории движка, или интерпретатора, англ. JavaScript engine). SpiderMonkey был написан Бренданом Эйхом во время его работы в Netscape Communications, а позднее сделан открытым. В настоящее время SpiderMonkey …   Википедия

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

  • 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… …   Wikipédia en Français

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

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

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

  • Historial de las versiones de Mozilla Firefox — Saltar a navegación, búsqueda Artículo principal: Historia de Mozilla Firefox El proyecto Mozilla Firefox fue creado por David Hyatt y Blake Ross como una rama experimental del proyecto Mozilla. Firefox 1.0 fue publicado el 9 de noviembre de 2004 …   Wikipedia Español

  • SpiderMonkey — Este artículo o sección se encuentra desactualizado. Es posible que la información suministrada aquí haya cambiado o sea insuficiente. Se ha sugerido que …   Wikipedia Español

  • День загрузки — Запрос «Firefox» перенаправляется сюда. Cм. также другие значения. Mozilla Firefox Firefox 3.0 на платформе GTK+/Linux Тип Браузер …   Википедия

Share the article and excerpts

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