- 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.