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

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

OdinMonkey booste les performances JavaScript de Firefox
Le module asm.js sera disponible dans Firefox 22

Le , par Hinault Romaric

192PARTAGES

6  0 
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 ?

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de _skip
Expert éminent https://www.developpez.com
Le 28/03/2013 à 10:35
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.
2  0 
Avatar de Xitog
Membre habitué https://www.developpez.com
Le 09/04/2013 à 12:27
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/151403-firefox-sticks-it-to-google-with-odinmonkey-which-can-boost-javascript-performance-by-1000-or-more
1  0 
Avatar de Xitog
Membre habitué https://www.developpez.com
Le 09/04/2013 à 13:02
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
1  0 
Avatar de Uther
Expert éminent sénior https://www.developpez.com
Le 09/04/2013 à 16:51
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.
1  0 
Avatar de Xitog
Membre habitué https://www.developpez.com
Le 10/04/2013 à 11:29
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.
1  0 
Avatar de Uther
Expert éminent sénior https://www.developpez.com
Le 27/03/2013 à 17:51
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.
0  0