Une nouvelle mise à jour de Chrome permet d’économiser 17 ans de traitement chaque jour

A new Chrome update saves 17 years of processing every day

TL; DR: Google propose désormais Chrome 91, qui inclut une mise à jour majeure du traitement JavaScript du navigateur. Selon Google, le moteur V8 utilisait environ 78 ans de JavaScript par jour, mais une accélération de 23% a réduit ce chiffre de 17 ans.

De nos jours, JavaScript fait partie intégrante de la conception de sites Web, mais cela peut être un peu un goulot d’étranglement pour les navigateurs. Le moteur V8 de Chrome était l’un de ses principaux avantages lors de sa sortie en 2008, et à ce jour, il reste un argument de vente majeur des navigateurs Chromium tels que Chrome, Edge, Vivaldi et Opera.

Il y a trois ans, Google a implémenté deux nouveaux compilateurs appelés Ignition et Turbofan sur le moteur V8 de manière à deux niveaux. Ignition est un interpréteur de bytecode rapide qui démarre rapidement. Turbofan est un écrivain de code machine qui optimise le code qu’il génère avec les informations collectées lors de l’exécution de JavaScript, ce qui entraîne un démarrage plus lent mais un code plus rapide.

Dans Chrome 91, Google a placé un troisième compilateur au milieu appelé Sparkplug. Comme Turbofan, il génère du code machine, mais il n’optimise pas son code en fonction de nouvelles informations, donc sa sortie n’est pas aussi bonne. Mais comme il n’a pas à attendre ces informations, il peut démarrer juste après Ignition et augmenter sa vitesse presque aussi rapidement. Il facilite la transition du pipeline de l’allumage au turboréacteur.

Lors des tests de Google, Sparkplug a amélioré les performances de calcul du moteur V8 de 5 à 15%, en fonction du matériel, du site Web et du système d’exploitation.

Une nouvelle mise a jour de Chrome permet deconomiser 17

Le nouveau V8 comprend également une deuxième optimisation; la suppression des fonctions intégrées intégrées, dont Google a récemment réalisé qu’elles causaient des problèmes de performances. En ce sens, il s’agit plus d’une correction de bug. Ce n’est pas la solution finale de Google au problème car il utilise trop de mémoire (comme toutes les versions de Chrome sont destinées à le faire, apparemment), mais c’est une amélioration suffisante pour mériter d’être incluse.

En bref, un builtin est un extrait de code pré-écrit qui gère un processus commun, et ils sont extraits de la mémoire par le processeur au fur et à mesure que le code s’exécute. Le problème avec eux est que dans certaines architectures de CPU, si la mémoire intégrée n’est pas stockée dans le même espace mémoire que le code du moteur, cela peut prendre un certain temps au CPU pour le trouver. La puce M1 d’Apple est particulièrement sensible à ce problème.

La nouvelle solution de V8 est de copier la bibliothèque de fonctions intégrées de partout où elle se trouve pour la coller à côté du code compilé qu’elle crée. Cette duplication est à l’origine de l’utilisation accrue de la mémoire, mais elle permet au processeur de faire systématiquement des prédictions de branche correctes lorsqu’il recherche le bon intégré, permettant ainsi au processeur de l’utiliser pour une exécution dans le désordre.

Google a constaté que le correctif de duplication pouvait offrir une amélioration des performances assez variable de 3 à 15%. YouTube et le M1 d’Apple en ont le plus profité.

Vous utilisez probablement Chrome 91 en ce moment (sinon, vous pouvez le télécharger ici). Avez-vous remarqué la vitesse supplémentaire?

Crédit d’image: Pawel Czerwinski