Developpez.com

Le Club des Développeurs et IT Pro

IonMonkey : Mozilla renforce les performances JavaScript de Firefox

Avec l'optimisation de la compilation Just in Time

Le 2012-09-13 14:42:47, par Nissa Comet, Expert confirmé
Avec la complexité grandissante des applications Web interactives, les navigateurs web se doivent d’être toujours plus performants. C’est ce que fait Mozilla en travaillant sur une nouvelle architecture de compilation JavaScript.

IonMonkey est le nouveau compilateur « Just In Time » en test du navigateur Firefox pour le langage JavaScript. Il verra le jour en tant que composant à part entière de Firefox 18 en début 2013.

IonMonkey se distingue du courant JIT JägerMonkey avec l’étape d’optimisation. Il est destiné aux applications JavaScript qui fonctionnent pendant de longues durées. David Anderson, développeur chez Mozilla, a expliqué sur le blog JavaScript de Mozilla que l’architecture de IonMonkey utilise un processus de compilation en trois étapes. Comme font les compilateurs d'autres langages tels que C++, le code JavaScript est traduit dans une représentation intermédiaire qui sera, elle, optimisée et convertie en code-machine.

D’après des tests, les résultats de rendement initiaux pour IonMonkey sont sensiblement meilleurs que les versions précédentes du compilateur JIT. Comparé à Firefox 17, Firefox 18 améliorerait les performances de 7 % sur le benchmark V8 de Google et de 26 % pour le benchmark Kraken de Mozilla.


Anderson et son équipe se montrent fiers de leur travail : « nous sommes ravis, non seulement pour le gain obtenu en performances, mais aussi car nous lançons une nouvelle ère de recherche dans le domaine des compilateurs JavaScript. C’est maintenant possible d’écrire un algorithme d’optimisation, utiliser un pipeline pour le mettre en œuvre et voir ce qu’il fait ».

Firefox 18 est prévu pour le 8 novembre en version beta. La version finale ne sera disponible qu’en 2013.

Source : le blog JavaScript de Mozilla

Et vous ?

Que pensez-vous de cette nouvelle approche d'optimisation JavaScript ?
Aura-t-elle un intérêt réel pour les applications Web ?

  Discussion forum
4 commentaires
  • Paul TOTH
    Expert éminent sénior
    Envoyé par pmithrandir
    Ce que je me demande pour ma part, c'est si firefox ne pourrait pas pré-compiler des frameworks comme jquery, et les utiliser avec toutes les optimisations possibles. Quand on voit qu'ils équipent 70-80% des nouveaux produits... on peut surement avoir un gain non négligeable de ce point de vue la non ?
    le gain serait encore plus spectaculaire si jQuery était natif à JS. En fait le plus mieux ça serait de ne pas coder en JS !!!
  • pmithrandir
    Expert éminent
    Ce que je me demande pour ma part, c'est si firefox ne pourrait pas pré-compiler des frameworks comme jquery, et les utiliser avec toutes les optimisations possibles. Quand on voit qu'ils équipent 70-80% des nouveaux produits... on peut surement avoir un gain non négligeable de ce point de vue la non ?
  • raimbow
    Nouveau membre du Club
    Je me posais justement la question récemment si c'était possible d'utiliser un cache opcode pour javascript comme APC cache par exemple pour PHP

    Parce que j'imagine que tout le code JS est à chaque fois entièrement convertie en opcode mais est-ce bien utile de faire l'opération à chaque fois ? Les navigateur ne pourrait-il pas garder en cache une copie de la version compilé si le serveur renvoi un code 304 not-modified pour la ressource ? C'est peut être déjà le cas ?
  • ferber
    Membre éprouvé
    Envoyé par pmithrandir
    Ce que je me demande pour ma part, c'est si firefox ne pourrait pas pré-compiler des frameworks comme jquery, et les utiliser avec toutes les optimisations possibles. Quand on voit qu'ils équipent 70-80% des nouveaux produits... on peut surement avoir un gain non négligeable de ce point de vue la non ?
    Il ont déjà le code pour le faire:
    le projet tamarin, le javascript (ecma 4) et converti ( pré-compilé ) en fichier Abc ( qui contient des op codes).