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 ?
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 ?
-
UtherExpert éminent séniorMê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.le 22/05/2015 à 9:04
-
UtherExpert éminent séniorJustement 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.
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éesle 28/05/2015 à 18:35 -
Pierre GIRARDExpert éminentReste 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.le 22/05/2015 à 9:02
-
Pierre GIRARDExpert éminentle 22/05/2015 à 9:17
-
UrubuCandidat au ClubBin ç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.le 31/05/2015 à 19:09 -
dlandelleMembre du ClubJ'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 ;-)le 04/06/2015 à 9:04 -
WashmidMembre avertiPour leur défense Chrome et Firefox ont évolués entre tempsle 22/05/2015 à 8:26
-
TiranusKBXExpert confirméQuelqu'un peut me dire pourquoi il font la comparaison avec une version chrome et firefox en Alpha ?le 22/05/2015 à 8:59
-
Pierre GIRARDExpert éminentBen ils sont à égalité donc, vu que la version de Edge n'est pas non plus la version définitive.le 22/05/2015 à 9:04
-
Logan MauzaizeRédacteur/Modérateurle 22/05/2015 à 10:16