12 points par xguru 2023-12-23 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • Résumé des améliorations impressionnantes du moteur V8 en 2023
  • Amélioration globale de la vitesse grâce à l’introduction d’un nouveau compilateur intermédiaire et aux améliorations apportées au compilateur de haut niveau, au runtime et au garbage collector
  • Ajout de nouvelles fonctionnalités pour JavaScript et WebAssembly, et arrivée efficace des langages de programmation à garbage collection sur le Web grâce à WebAssembly garbage collection (WasmGC)
  • Renforcement de la sécurité avec l’amélioration de l’infrastructure de sandboxing et l’introduction de l’intégrité du flot de contrôle (CFI) dans V8

Maglev: nouveau compilateur d’optimisation intermédiaire

  • Introduction du nouveau compilateur d’optimisation Maglev, qui se situe entre Sparkplug et TurboFan
  • Maglev génère du code environ 20 fois plus lentement que Sparkplug, mais 10 à 100 fois plus vite que TurboFan
  • Gain de performances observé de 8,2 % sur JetStream et de 6 % sur Speedometer
  • Réduction de la consommation d’énergie grâce à la rapidité de compilation de Maglev et à la moindre dépendance à TurboFan

Turboshaft: nouvelle architecture du compilateur d’optimisation de haut niveau

  • Introduction de Turboshaft, nouvelle architecture interne du compilateur d’optimisation de haut niveau TurboFan
  • Ajout plus simple de nouvelles optimisations et compilation plus rapide
  • Depuis Chrome 120, toutes les étapes backend indépendantes du CPU utilisent Turboshaft, avec une compilation environ deux fois plus rapide qu’auparavant

Un parseur HTML plus rapide

  • Ajout dans Blink d’un parseur HTML plus rapide afin de réduire le temps consacré au parsing HTML
  • Hausse de 3,4 % du score Speedometer
  • Le projet WebKit a immédiatement intégré ce changement

Allocations DOM plus rapides

  • Investissements et optimisations du côté du DOM
  • Ajout d’un pool de pages à l’allocateur Oilpan pour réduire le coût des allers-retours avec le noyau
  • Prise en charge des pointeurs compressés et non compressés, et prévention de la compression des champs les plus fréquemment utilisés dans Blink
  • L’oilpanization des classes fréquemment allouées a accéléré les opérations d’allocation d’un facteur 3 et amélioré les performances sur les benchmarks orientés DOM

Nouvelles fonctionnalités JavaScript

  • Déploiement de fonctionnalités JavaScript récemment standardisées.
  • Ajout de resizable ArrayBuffers, ArrayBuffer transfer, String isWellFormed et toWellFormed, du flag RegExp v, de JSON.parse with source, de l’Array grouping, de Promise.withResolvers, de Array.fromAsync, etc.
  • Les fonctionnalités d’aide pour Iterator ont été temporairement retirées en raison de problèmes de compatibilité Web et seront redéployées ultérieurement
  • Suppression de certaines vérifications temporaires inutiles de zone morte afin d’améliorer les performances du code JavaScript ES6+

Mises à jour de WebAssembly

  • Nouvelles fonctionnalités et améliorations de performances pour Wasm
  • Améliorations des performances avec la prise en charge de multi-memory, des tail calls et de relaxed SIMD
  • Implémentation de memory64 terminée, avec déploiement prévu lorsque la proposition atteindra l’étape 4
  • Intégration des dernières mises à jour de la proposition de gestion des exceptions et prise en charge de l’ancien format
  • Investissements dans JSPI pour permettre une catégorie plus large d’applications sur le Web

WebAssembly garbage collection

  • Le déploiement de WasmGC permet d’allouer des objets et des tableaux gérés par le garbage collector existant de V8
  • Lors de la compilation vers Wasm d’applications écrites dans des langages à garbage collection comme Java, Kotlin et Dart, l’exécution est environ deux fois plus rapide qu’avec une compilation vers JavaScript

Sécurité

  • Sandboxing, fuzzing et CFI ont été les principaux thèmes de sécurité cette année
  • Mise en place d’une infrastructure de sandboxing, investissements dans l’infrastructure de fuzzing et amélioration de la couverture des langages
  • Mise en place des fondations de l’architecture CFI et possibilité d’implémentation sur diverses plateformes
  • Atténuation de techniques d’exploit populaires autour de the_hole et lancement d’un nouveau programme de primes aux exploits sous la forme de V8CTF

Conclusion

  • L’effet combiné de petits projets d’amélioration des performances a produit des résultats significatifs
  • Les scores de benchmark montrant les progrès de V8 en 2023 ont progressé de 14 % sur JetStream et de 34 % sur Speedometer
  • V8 est désormais plus rapide et plus sûr, et le voyage vers un Web rapide et intense ne fait que commencer
  • L’équipe V8 souhaite à tous une expérience de navigation Web rapide, sûre et formidable

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.