Mozilla Firefox améliore les performances JavaScript

Les utilisateurs de Firefox peuvent s'attendre à des performances JavaScript améliorées dans le navigateur Firefox 83, avec la mise à jour Warp du moteur JavaScript SpiderMonkey activée par défaut.

Également appelé WarpBuilder, Warp améliore la réactivité et l'utilisation de la mémoire et accélère le chargement des pages en apportant des modifications aux compilateurs JiT (juste à temps). L'optimisation de JiT est modifiée pour s'appuyer uniquement sur le format de bytecode linéaire simple CacheIR, en particulier sur les données CacheIR collectées par les niveaux de base. La nouvelle architecture exploitée dans le navigateur est également décrite comme étant plus facile à maintenir et débloquant des améliorations supplémentaires de SpiderMonkey.

Firefox 83 a été publié en version bêta le 20 octobre et devrait sortir le 17 novembre. Warp s'est avéré plus rapide que Ion, l'ancien JiT d'optimisation de SpiderMonkey, y compris une amélioration de 20% du temps de chargement de Google Docs. D'autres sites Web utilisant beaucoup de JavaScript tels que Netflix et Reddit ont également montré des améliorations.

Baser Warp sur CacheIR a permis la suppression du code dans tout le moteur qui était nécessaire pour suivre les données d'inférence de type global utilisées par IonBuilder, ce qui a entraîné des accélérations. Bien que IonBuilder et WarpBuilder produisent tous deux Ion MIR, une représentation intermédiaire utilisée par l'optimisation du back-end JiT, IonBuilder avait beaucoup de code complexe non nécessaire dans WarpBuilder. Warp peut également faire plus de travail hors thread et nécessite moins de recompilations. Les plans nécessitent des optimisations continues sur Warp, qui est actuellement plus lent que Ion sur certains benchmarks synthétiques.

Warp a remplacé la partie avant - la phase de construction MIR - du IonMonkey JiT. Les plans prévoient de supprimer l'ancien code et l'architecture, ce qui est susceptible de se produire dans Firefox 85. Des améliorations supplémentaires en termes de performances et d'utilisation de la mémoire sont attendues en conséquence. Mozilla continuera également d'optimiser progressivement le back-end de IonMonkey JiT, car Mozilla pense qu'il y a encore place à l'amélioration pour les charges de travail à forte intensité de JavaScript. Un outil est également en cours de développement pour les développeurs Web et Mozilla pour explorer les données CacheIR pour une fonction JavaScript.