Developpez.com

Le Club des Développeurs et IT Pro

Microsoft Edge : le moteur JavaScript Chakra optimisé

Les tests affichent de meilleures performances que IE11, Chrome et Firefox

Le 2015-05-22 06:32:44, par Amine Horseman, Expert éminent sénior
Lors de la conférence Build 2015, Microsoft avait affirmé que le moteur JavaScript Chakra de Edge est près de trois fois plus rapide qu’Internet Explorer 11 sur le Benchmark Unity. Aujourd’hui, Microsoft ajoute d’autres améliorations inspirées du « web actuel » en analysant des milliers de sites web choisis de manière aléatoire afin de détecter les fonctionnalités JavaScript qui ont besoin d’être optimisées et mesurer l’impact des modifications.

L’une des premières optimisations effectuées concerne les fonctions « inline ». En effet, tous les compilateurs JavaScript modernes supportent cette fonctionnalité de pouvoir déclarer le code d’une fonction directement lors de son appel, ce qui améliorerait les performances de 20 à 30%. Mais l’équipe de Edge va encore plus loin en optimisant les fonctions inline même si leurs déclarations sont réparties sur plusieurs fichiers JavaScript.


La deuxième optimisation concerne les valeurs de type « const » que ECMAScript6 offre aux développeurs JavaScript pour améliorer les performances. En effet, lorsqu’une valeur est déclarée comme constante, le compilateur n’aura plus besoin d’ajouter des instructions pour la vérification de la valeur ; cependant, une analyse de 10 000 sites sur le web a permis de trouver que 20% des développeurs déclarent les valeurs constantes en tant que variables globales qui ne seront ensuite pas modifiées par la suite. L’équipe de Edge a donc optimisé le parseur du moteur Chakra de sorte à détecter ces variables globales non modifiables et les transformer en valeurs constantes à lecture-seule. D’autres optimisations encore ont été apportées notamment sur l’optimisation du code à l’intérieur des blocs try-catch, ainsi que la méthode utilisée par le compilateur pour parcourir les tableaux.


Les résultats des tests montrent que le moteur Chakra sur Microsoft Edge est nettement plus rapide qu’Internet Explorer 11 : la différence atteint 60% sur le benchmark Jet Stream et 130% sur le benchmark Octane 2.0. Les résultats montrent aussi de meilleures performances pour Microsoft Edge par rapport à Chrome et Firefox.

Source : Microsoft Blog

Et vous ?

Que pensez-vous des résultats des tests ?
Comment Microsoft pourrait encore améliorer les performances de Edge ?
  Discussion forum
205 commentaires
  • Uther
    Expert éminent sénior
    Même si la progression de Edge est claire, à part sur Sunspider ou il utilise des optimisation spécifique qui rendent le test caduque, il ne domine pas les autres navigateurs comme le laisserait penser les chiffres Microsoft.
  • Uther
    Expert éminent sénior
    Envoyé par Chuck_Norris
    Sérieusement je doute qu'utiliser les instructions SIMD soit la solution royale pour accélérer l'exécution du code Javascript. Avant ça, je testerai le JIT pour compiler le Javascript en code totalement natif et l'exécuter ainsi en exploitant les pleines ressources du processeur sans surcouche ni VM.
    Justement c'est plus ou moins ce que permet asm.js (à la condition d'avoir un code Javascript particulier) et ce qui rend d'autant plus utile le SIMD.

    Envoyé par Chuck_Norris
    Bref, une nouveauté qui n'en est pas une, juste pour faire le buzz, ça commence à devenir fatigant. Si Edge veut vraiment percer, qu'il apporte de véritables avantages à l'utilisateur plutôt que de communiquer sur une optimisation interne qui sera obscure pour 95% de ses utilisateurs.
    Bah personne n'a dit que SIMD est nouveau, ni que c'est MS qui en a eu l'idée d'autant plus que ça fait partie de la spec Javascript. Et oui ce n'est pas une optimisation prévue pour les utilisateurs, mais pour améliorer les capacités des développeur particulièrement dans une appli web lourde en calculs.

    Je n'ai vu dire nulle part que ça allait chambouler la vie de qui que ce soit. Microsoft communique juste de manière tout a fait normale sur ses nouveautés, comme il en a intérêt s'il veut qu'elles soit utilisées
  • Pierre GIRARD
    Expert éminent
    Envoyé par Washmid
    Pour leur défense Chrome et Firefox ont évolués entre temps
    Reste que depuis 2013 (et même avant avec IE10), le navigateur de µSoft (quel qu'il soit) est toujours en tête des Benchmark réalisés par les bons soins de µSoft.
  • Pierre GIRARD
    Expert éminent
    Envoyé par TiranusKBX
    Quand tu veut faire une comparaison tu le fait avec un produit fini pas avec un prototype baclé
    Edge est peut-être aussi un "prototype baclé"
  • Urubu
    Candidat au Club
    Bin ça servira principalement pour emscripten, le compilateur C++ -> java utilise massivement asm.js et les perfs sont excellentes.
    Sur mon moteur 3D, je ne perd que "50%" de CPU par rapport à une version desktop.
  • dlandelle
    Membre du Club
    J'ai vu du SIMD depuis longtemps 1988 (CRAY) 1992 (i860) 1994 (CNAPS) 1996 (MMX) 2012 (CUDA).
    Ce n'est pas une révolution.
    On se fait bien chier à coder.

    Avant de parler d'optimisation, il faudrait déjà que :
    1) ça fonctionne
    2) on identifie ce qui rame, et pourquoi (profiling)
    3) qu'on explique ce qu'on va gagner

    Mon premier browser était Mosaic en 1993, et ça fonctionnait bien sur du html super simple sur un 486 ;-)

    4) pourquoi n'arrive-t-on plus à browser le web correctement ?

    Le contenu mis en ligne avec plein de publicités vidéo et du spyware n'aide pas. Je pense qu'il faut surtout rationaliser (w3c) et limiter les appétits des producteurs de contenu.

    Et de manière générale, il existe plein de super produits (opensource ou pas) qui avec le temps fonctionnent de moins en moins bien, pour finir par ne plus fonctionner du tout, pour nous occuper et nous vendre (ou nous donner) autre chose.

    Ce perpétuel recommencement est là pour nous occuper, avec une bande de tricheurs qui tirent les ficelles avec des dollars ;-)
  • Washmid
    Membre averti
    Pour leur défense Chrome et Firefox ont évolués entre temps
  • TiranusKBX
    Expert confirmé
    Quelqu'un peut me dire pourquoi il font la comparaison avec une version chrome et firefox en Alpha ?
  • Pierre GIRARD
    Expert éminent
    Envoyé par TiranusKBX
    Quelqu'un peut me dire pourquoi il font la comparaison avec une version chrome et firefox en Alpha ?
    Ben ils sont à égalité donc, vu que la version de Edge n'est pas non plus la version définitive.
  • Logan Mauzaize
    Rédacteur/Modérateur
    Envoyé par TiranusKBX
    Quelqu'un peut me dire pourquoi il font la comparaison avec une version chrome et firefox en Alpha ?
    Je dirais à cause du support ES6 ?