IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Firefox Discussion :

OdinMonkey booste les performances JavaScript de Firefox


Sujet :

Firefox

  1. #1
    Responsable .NET

    Avatar de Hinault Romaric
    Homme Profil pro
    Consultant
    Inscrit en
    Janvier 2007
    Messages
    4 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2007
    Messages : 4 570
    Points : 252 372
    Points
    252 372
    Billets dans le blog
    121
    Par défaut OdinMonkey booste les performances JavaScript de Firefox
    OdinMonkey booste les performances JavaScript de Firefox
    le module asm.js sera disponible dans Firefox 22

    Dans sa quête de meilleures performances pour l’exécution d’applications JavaScript, la fondation Mozilla a mis sur pied OdinMonkey, un nouveau module asm.js pour le moteur JavaScript de Firefox.

    D’après la description de Mozilla, asm.js est – purement - du code JavaScript « spécialement conçu », qui est compilé en langage natif C/C++ avec emscripten avant exécution. Le code asm.js exécuté avec un navigateur standard comme Chrome ou encore Firefox sans OdinMonkey est environ dix fois plus lent sur le premier et 12 fois plus lent sur le second par rapport au code natif.

    C’est à ce stade qu’intervient le module d’optimisation OdinMonkey. Il promet d’accélérer l’exécution de JavaScript au delà « des rêves les plus fous ». Selon Mozilla, il peut améliorer les performances JavaScript du moteur actuel de Firefox de près de 1000 %.


    Cette nouveauté permettra aux développeurs de créer des applications Web complexes (surtout des jeux), pouvant s’exécuter dans le navigateur avec une vitesse quasi similaire à une exécution en natif. Pour cela, il faudra juste se familiariser avec asm.js. Ce projet se positionne comme un sérieux concurrent de Native Client (technologie permettant d'exécuter du code C/C++ à l'intérieur du navigateur dans un environnement protégé) de Google.

    OdinMonkey a déjà été intégré dans la version Nightly de Firefox. Les développeurs enregistrés sur ce canal peuvent déjà tester la fonctionnalité sur un système d’exploitation Linux ou Windows. OS X n’est pas encore pris en charge.

    OdinMonkey sera disponible en juin avec la version finale de Firefox 22.

    Le projet asm.js

    Le projet emscripten sur GitHub

    Télécharger la version Nightly de Firefox


    Source : Mozilla


    Et vous ?

    Que pensez-vous du projet asm.js ?

    Allez-vous écrire votre code JavaScript en suivant les instructions que asm.js impose pour bénéficier des optimisations d'OdinMonkey ?
    Vous souhaitez participer aux rubriques .NET ? Contactez-moi

    Si déboguer est l’art de corriger les bugs, alors programmer est l’art d’en faire
    Mon blog, Mes articles, Me suivre sur Twitter
    En posant correctement votre problème, on trouve la moitié de la solution

  2. #2
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 562
    Points : 15 493
    Points
    15 493
    Par défaut
    Que pensez-vous du projet asm.js ?
    Au début ça m'a choqué, mais plus j'y pense plus ça parait un excellente idée pour obtenir une sorte de bytecode commun a plusieurs langages mais sans créer de nouvelles incompatibilité: Les navigateur qui ne gerent pas asm.js accepteront le code sans problème, c'est juste que ça ne sera pas optimal en vitesse.

    A priori les gens d'epic on fait un port de l'unreal engine, ça semble prometteur.

    Je regrette juste que le projet ne soit tiré que par Mozilla pour le moment.

    Allez-vous écrire votre code JavaScript en suivant les instructions que asm.js impose pour bénéficier des optimisations d'OdinMonkey ?
    L'idée de base du projet n'est pas de faire manuellement du code asm.js (ce qui serait particulièrement indigeste), mais de faire que des langages puissent se compiler en asm.js, comme c'est déjà le cas pour le C/C++ via enscriptem.

  3. #3
    Expert éminent
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Points : 7 752
    Points
    7 752
    Par défaut
    Justement je me demande si ça pourrait être le ciment manquant entre le JS pur et les surcouches de style Dart. Une sorte de llvm pour navigateur.
    Je me vois pas trop écrire des kilomètres de code JS, en revanche dans un langage statique qui ensuite se compile vers une forme bien définie de JS optimisé c'est bien intéressant.

  4. #4
    Membre habitué

    Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2004
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 46
    Points : 183
    Points
    183
    Par défaut
    Pour ceux qui, comme moi, la phrase "D’après la description de Mozilla, asm.js est – purement - du code JavaScript « spécialement conçu », qui est compilé en langage natif C/C++ avec emscripten avant exécution." laisse perplexe, j'ai fait un petit dessin après enquête pour mieux comprendre. J'espère que ça aidera !

    http://i.imgur.com/kmRqv92.png?1

    En dernière étape, OdinMonkey traduit le javascript produit (qui est un sous-ensemble utilisant asm.js) en code natif, d'où le gain de performance indéniable.

    Sources :
    http://ejohn.org/blog/asmjs-javascript-compile-target/
    http://kripken.github.io/mloc_emscripten_talk/#/
    http://www.extremetech.com/computing...y-1000-or-more

  5. #5
    Membre habitué

    Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2004
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 46
    Points : 183
    Points
    183
    Par défaut
    Mais en fait c'est normal que l'on ne comprenne rien : la news est très mal rédigée, voir carrément fautive !

    Dans sa quête de meilleures performances pour l’exécution d’applications JavaScript, la fondation Mozilla a mis sur pied OdinMonkey, un nouveau module asm.js pour le moteur JavaScript de Firefox.
    Faux : OdinMonkey est un compilateur à la volée de Javascript qui fait parti du moteur Javascript SpiderMonkey de Firefox. Le moteur SpiderMonkey comporte au moins deux autres compilateurs à la volée : JaegerMonkey et IonMonkey. IonMonkey produit un code plus optimisé mais avec un coût temporel non négligeable, le choix entre les deux est dynamique [1].

    D’après la description de Mozilla, asm.js est – purement - du code JavaScript « spécialement conçu », qui est compilé en langage natif C/C++ avec emscripten avant exécution. Le code asm.js exécuté avec un navigateur standard comme Chrome ou encore Firefox sans OdinMonkey est environ dix fois plus lent sur le premier et 12 fois plus lent sur le second par rapport au code natif.
    Faux : Emscripten*** s'inscrit dans une chaîne qui compile du C/C++ vers du Javascript (et pas l'inverse !!!), plus particulièrement ici un sous-ensemble de Javascript appelé asm.js.

    C’est à ce stade qu’intervient le module d’optimisation OdinMonkey. Il promet d’accélérer l’exécution de JavaScript au delà « des rêves les plus fous ». Selon Mozilla, il peut améliorer les performances JavaScript du moteur actuel de Firefox de près de 1000 %.
    Et là OdinMonkey traduit le javascript spécialement conçu en code natif.

    Merci de ne pas tout mélanger !

    *** en détails Emscripten s'occupe précisément de traduire la représentation intermédiaire LLVM en Javascript.
    1. Source : Blog de Mozilla sur Javascript
    Images attachées Images attachées  

  6. #6
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 562
    Points : 15 493
    Points
    15 493
    Par défaut
    Citation Envoyé par Xitog
    Faux : OdinMonkey est un module pour le moteur Javascript de Firefox, nommé IonMonkey.
    Quitte a reprendre, autant le faire bien:
    OdinMonkey est un module du moteur Javascript de Firefox nommé SpiderMonkey.

    IonMonkey n'est lui aussi qu'un module de SpiderMonkey en charge de la compilation JIT des portion de code Javascript nécessitant des performances très élevés.

  7. #7
    Membre habitué

    Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2004
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 46
    Points : 183
    Points
    183
    Par défaut
    Merci, j'ai corrigé dans le billet en question (pour ne pas laisser une phrase fausse) mais j'indique ma dette ici. J'ai été induit en erreur par l'article que je cite en source qui dit :
    OdinMonkey is a module for Firefox’s IonMonkey JS engine
    Moralité : toujours tout vérifier.

    J'en profite aussi pour signaler aussi une actualité en date du 5 avril 2013 : SpiderMonkey va se doter d'un autre compilateur à la volée, Baseline.

Discussions similaires

  1. Réponses: 34
    Dernier message: 15/03/2017, 14h39
  2. Réponses: 1
    Dernier message: 26/06/2013, 14h28
  3. Réponses: 4
    Dernier message: 14/09/2012, 07h39
  4. Réponses: 3
    Dernier message: 21/06/2011, 21h02
  5. Réponses: 0
    Dernier message: 20/06/2011, 22h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo