Windows Fun

Windows fun!

Microsoft Edge 64-bit plus rapide que Chrome et Safari

En plus d’exploiter les derniers standards du web, le nouveau navigateur de Microsoft est aussi très rapide, voire même plus que Chrome d’après les derniers tests.

Chaque navigateur a sa propre application permettant de tester sa vitesse, pour laquelle il est généralement le plus rapide. Mais ça c’était avant Edge: Microsoft a effectué des mesures de performances de son dernier navigateur en version 64-bit et il arrive en tête dans Octane 2.0, le benchhmark de performance JavaScript de Google, et JetStream, celui d’Apple.

Comparaison des performances sur le benchmark Octane de Google

Comparaison des performances sur le benchmark Octane de Google

Comparaison des performances sur le benchmark Jet Stream de Apple

Comparaison des performances sur le benchmark Octane de Google

Beaucoup d’optimisations JavaScript
Afin d’obtenir de si bons résultats, Microsoft a tout d’abord analysé de nombreux sites internet pour voir l’impact des performances selon le type de code des sites et s’est ensuite servi des résultats pour repérer et améliorer les faiblesses de Chakra, le moteur JavaScript de Edge.

Optimisations des fonctions inline
La première optimisation est une accélération du code inline qui peut maintenant être mieux optimisé par le compilateur. Grâce à une meilleure pipeline, Edge est maintenant capable d’optimiser les fonctions inline, sans perdre les avantages liés à l’inlining (pas de surcoût lors de l’appel d’une fonction puisque les registres n’ont pas besoin d’êtres sauvegardés/restaurés).

Accélération des performances pour l’accès aux constantes globales
ECMAScript 6 introduit la notion de constantes, qui sont des variables dont la valeur ne peut être modifiée au cours de l’exécution du programme. Les programmes actuels, qui n’utilisent pas ECMAScript 6 n’ont pas accès à cette fonctionnalité et ont pourtant parfois des variables globales constantes. Chakra est capable d’identifier ces variables, et de les marquer comme constantes pour le compilateur JIT. L’accès à ces variables est donc beaucoup plus rapide par la suite.

Amélioration des performances des blocs try-catch
Si vous êtes développeurs JavaScript, vous savez qu’il faut éviter l’utilisation de ces blocs lorsque les performances sont critiques. Tout simplement parce que les compilateurs JIT ont du mal à optimiser ce genre de code path. Pourtant, d’après les tests effectués par Microsoft, sur plus de 4500 sites, 96% utilisaient des blocs try-catch interceptés par le code. Et parmi ces sites, la moitié avaient plus de 10 exceptions de levaient.

Avant Windows 10, ces blocs n’était tout simplement pas optimisés. Avec Edge, ils peuvent maintenant être optimisés, et dans le cas où aucune exception n’est levée, les performances sont même quasiment aussi bonnes qu’avec un code sans bloc try-catch.

Code Minimifié
Lors de développement de Windows 10 et de Edge, Microsoft s’est rendu compte que les performances du même programme, une fois minimifié étaient ralenties. Il se trouve que certains minimifieurs comme UglifyJS produisent du code qui n’était pas optimisé par Chakra, puisque non utilisé dans la programmation. En optimisant ce genre de code, les performances du code minimifié sont maintenant meilleures de 20 à 50%.

Array.indexOf()
Beaucoup de développeurs utilisent certaines bibliothèques JavaScript parce qu’elles optimisent certaines fonctions natives du navigateur qui ne sont pas aussi rapides qu’elles devraient l’être. D’après les statistiques remontées par Microsoft, les 3 fonctions les plus utilisées en JavaScript étaient Array.indexOf(), Array.forEach() et Array.map(). Chakra a donc été optimisé afin d’accélérer l’accès aux différents éléments d’un tableau, et notamment à la manière dont est récupérée la valeur numérique correspondant à l’index d’un tableau. Au final, les performances de Array.indexOf() ont été multipliées par 5 comparé à Internet Explorer.

Grâce à l’utilisation des statistiques, Microsoft a donc pu augmenter significativement les performances de Chakra par rapport à Internet Explorer. Mais l’équipe de Edge ne semble pas vouloir s’arrêter là, puisque la recherche des performances est un processus sans fin.

Avec Edge, Microsoft semble de retour dans la course aux navigateurs, ce qui est très bon pour la compétition. Google, Apple, Safari: c’est à votre tour!

Source: Blog Windows