Les performances de compilation JIT ont été sensiblement améliorées dans les versions nocturnes de Firefox

В constructions nocturnes Firefox allumé compilateur JIT mis à jour, développé nom de code WarpBuilder. Pour activer le nouveau JIT, l'option "javascript.options.warp" est fournie dans about:config.
Il est à noter que WarpBuilder n'est que la première étape vers l'intégration de nouvelles optimisations dans le navigateur, dont la mise en œuvre est prévue au cours de l'année prochaine.

Le nouveau JIT améliore les performances du moteur JavaScript SpiderMonkey en réduisant les informations de type internes suivies dans le moteur et en utilisant auparavant la technique de mise en cache de code intermédiaire (CacheIR). proposé dans l'interpréteur de bytecode « de base », qui occupe une niche intermédiaire entre un interpréteur régulier et un compilateur pré-JIT. Ces changements ont permis de simplifier considérablement l'architecture JIT, d'augmenter la réactivité, de réduire le temps de chargement des pages et de réduire la consommation mémoire.

C'est notéque le nouveau JIT a résolu de nombreux problèmes de l'ancien JIT IonBuilder, tels que :

  • Complexité de mise en œuvre et problèmes de sécurité potentiels ;
  • Surcharge supplémentaire pour le code Baseline/C++ ;
  • Spécialisation excessive conduisant à des recompilations inutiles ;
  • Génération de code intermédiaire MIR (IR de niveau intermédiaire) dans le thread principal (dans WarpBuilder, l'assembly principal du code intermédiaire est placé dans un thread séparé) ;
  • Consommation de mémoire supplémentaire pour stocker des données sur les types et les groupes d'objets (ObjectGroups).

En moyenne, dans les tests qui évaluent les performances sur la base de métriques visuelles, une accélération de 5 à 15 % est observée lors de l'utilisation de WarpBuilder. Le taux d’achèvement des tests du compteur de vitesse a augmenté de 10 %. Les tests sur des sites réels ont montré une réduction du temps de chargement de Google Docs de 20%, indice Indice de vitesse lors de l'ouverture de la section Android sur Reddit améliorée par 13%, pdfpaint a commencé à fonctionner plus rapidement sur 18%. Consommation de mémoire dans le test tp6 diminué de 8%. Indicateurs les statistiques des outils de développement (devtools perf) ont également montré une réduction de 8 % de la consommation de mémoire.

Source: opennet.ru

Ajouter un commentaire