Windows 10 : Microsoft intégrera à Chakra le support d'Asm.js
Le module de Mozilla permettant à JavaScript d'avoir des performances proches du natif

Le , par Hinault Romaric, Responsable .NET
Microsoft compte accélérer les performances de JavaScript dans la prochaine version de son système d’exploitation grâce à une prise en charge d’asm.js.

JavaScript est devenu le langage par excellence du Web. Il a été largement adopté par de nombreux développeurs, devant ainsi l’un des langages les plus populaires au monde, selon les indices Tiobe et Redmonk.

Cependant, les applications JavaScript offrent des performances médiocres par rapport aux applications natives. Pour combler cet écart, Mozilla s’était lancé dans le développement du module Asm.js.

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. Avec Asm.js, les développeurs peuvent écrire du code C/C++ et l’exécuter dans le navigateur grâce à emscripten. Grâce aux optimisations qui ont été apportées à la technologie par Mozilla, ses performances se rapprochent de celles du code natif c/c++.

Microsoft a annoncé dans un billet de blog que ses développeurs travaillent sur une prise en charge d’Asm.js dans son moteur JavaScript Chakra. Ce support d’Asm.js figure dans le top 10 des fonctionnalités les plus demandées par les développeurs, en ce qui concerne les évolutions de Chakra.

« Asm.js est un pas important vers des performances quasi natives pour le Web. C’est pourquoi nous sommes ravis d’apporter Asm.js à Chakra dans une prochaine version », affirme Microsoft dans un billet de blog.

Microsoft développera la prise en charge d’Asm.js dans Chakra en collaboration avec les développeurs de Mozilla, afin de garantir une mise en œuvre correcte.

Il faut noter que bien que le code d’Asm.js soit purement du code JavaScript, son exécution dans un navigateur standard comme Chrome, sans une prise en charge de la technologie, peut être environ dix fois plus lent.

En gérant explicitement la technologie, les navigateurs de Microsoft sous Windows 10 (Spartan et Internet Explorer) offriront aux applications Asm.js des performances proches du natif.

Source : Microsoft

Et vous ?

Avez-vous déjà testé Asm.js ? Que pensez-vous des performances qu’il offre ?


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse Signaler un problème

Avatar de yahiko yahiko - Rédacteur/Modérateur https://www.developpez.com
le 19/02/2015 à 13:30
Excellente nouvelle.
Avatar de earhater earhater - Membre confirmé https://www.developpez.com
le 19/02/2015 à 13:52
Par contre ça veut bien dire que le code JavaScript généré doit être à la base écrit en c / c++ par les développeurs ?
Avatar de yahiko yahiko - Rédacteur/Modérateur https://www.developpez.com
le 19/02/2015 à 13:59
Citation Envoyé par earhater Voir le message
Par contre ça veut bien dire que le code JavaScript généré doit être à la base écrit en c / c++ par les développeurs ?
Non, asm.js c'est juste un sous-ensemble de JavaScript.
Tu peux l'écrire à la main en précisant que c'est de l'asm.js : "use asm".
Avatar de Zefling Zefling - Membre expert https://www.developpez.com
le 19/02/2015 à 14:31
Citation Envoyé par yahiko Voir le message
Non, asm.js c'est juste un sous-ensemble de JavaScript.
Tu peux l'écrire à la main en précisant que c'est de l'asm.js : "use asm".
Enfin, ce que j'ai vu en asm.js ça donne pas envie.
http://ejohn.org/blog/asmjs-javascri...ompile-target/
Avatar de yahiko yahiko - Rédacteur/Modérateur https://www.developpez.com
le 19/02/2015 à 14:39
Ça peut paraître de prime abord abscons mais il y a très peu de règles syntaxiques en réalité puisque asm.js ne concerne que des manipulations de nombres.
Une fois connue, ça se lit très facilement.

De plus, une application entière n'est pas destinée à être écrite totalement en asm.js. Seules les parties critiques peut être amenées à devoir être rédigées dans ce sous-langage.

On peut avoir du code JavaScript script standard, et pour des raisons d'optimisation et de performance, écrire une fonction en asm.js dédiée à un calcul précis. Ca pourra par exemple être d'une grande aide dans l'animation 2D/3D nativement sur un navigateur via WebGL par exemple.
Avatar de Vlozer Vlozer - Membre habitué https://www.developpez.com
le 19/02/2015 à 14:43
Citation Envoyé par Hinault Romaric Voir le message

Avez-vous déjà testé Asm.js ? Que pensez-vous des performances qu’il offre ?
J'utilise pas mal emscripten ces derniers temps, et je regrette franchement que pNaCl n'ait pas pris le dessus sur asmjs...
Point de vu performance j'ai pas noté de gros probleme, sauf en ce qui concerne la désallocation qui prend une plombe (meme sous firefox)...
Mais c'est surtout à l'utilisation, y'a énormément de concept assez pointu (d'autres moins) qui ne sont pas du tout utilisable, on a vraiment l'impression d'avoir à faire à du faux C/C++, ajoutons à ça le comportement assez hasardeux du compilo qui va t'ignorer tout un bloc de code si tu lui laisse pas un printf("foo"; dedans (<= true story, ça m'est arrivé plusieur fois, c'est incompréhensible et super frustrant), et à déboguer c'est juste une horreur...

Bref, ça peut etre interessant dans certains cas bien specifique (portage de jeux sdl/OpenGL), mais pour le reste...
Avatar de SylvainPV SylvainPV - Rédacteur/Modérateur https://www.developpez.com
le 19/02/2015 à 15:07
Je ne pense pas qu'il faille chercher à coder directement en asm.js, le but recherché est de pouvoir coder dans le langage de son choix et de compiler ensuite en asm.js. Mais à part emscripten, je ne connais pas beaucoup de compilateurs en asm.js. Est-ce qu'il en existe un pour Python par exemple ?
Avatar de yahiko yahiko - Rédacteur/Modérateur https://www.developpez.com
le 19/02/2015 à 15:19
Citation Envoyé par SylvainPV Voir le message
Je ne pense pas qu'il faille chercher à coder directement en asm.js, le but recherché est de pouvoir coder dans le langage de son choix et de compiler ensuite en asm.js. Mais à part emscripten, je ne connais pas beaucoup de compilateurs en asm.js. Est-ce qu'il en existe un pour Python par exemple ?
On peut toujours faire du Python --[Cython]--> C --[emscripten]--> asm.js
Pas testé personnellement par contre
Avatar de AoCannaille AoCannaille - Membre émérite https://www.developpez.com
le 19/02/2015 à 15:21
d'après le lien de Zefling, il reste tjrs un facteur supérieur à 2 niveau performance... quand ils seront à du 1,2 ou 1,5 j'accepterais qu'ils disent qu'ils "se rapprochent des performances natives"....
Avatar de Uther Uther - Expert éminent https://www.developpez.com
le 19/02/2015 à 18:19
En même temps si tu regardes le lien, tu vois qu'il date de 2013. Sur les microbench que j'ai vu plus récement, ça oscillait etre x1 et x2, avec une moyenne à x1,3
Contacter le responsable de la rubrique Accueil