Google réduit l'empreinte mémoire de son moteur JavaScript V8

Par:
fredericmazue

lun, 16/09/2019 - 16:34

En 2018, Google avait lancé le projet V8 Lite. Il était question de réduire considérablement l'empreinte mémoire du moteur JavaScript v8. Le but étant d'aboutir à un moteur JavaScript adapté aux périphérique mobiles disposant de peu de ressources.

Toutefois, au cours de ce travail, Google s'est rendue compte que bon nombre des optimisations de mémoire réalisée pour ce mode Lite pourraient être intégrées à la version V8 standard, ce qui serait avantageux pour tous les utilisateurs.

Google a présenté le résultat de ses travaux à la conférence BlinkOn 10. (Video ci-dessous). Google a également publié un interessant billet technique donnant le détail des travaux réalisés.

Notamment, Google s'est rendue compte qu'une partie importante du segment de mémoire de V8 était dédiée à des objets qui ne sont pas essentiels à l'exécution de JavaScript, mais qui sont utilisés pour optimiser l'exécution de JavaScript et gérer des situations exceptionnelles. Parmi lesquels : code optimisé, type de retour utilisé pour déterminer comment optimiser le code, métadonnées redondantes pour les liaisons entre les objets C ++ et JavaScript. Google s'est encore aperçue que quand le moteur n'optimise pas le code (mode Lite), il est possible d'éviter la collecte des commentaires de type requis par le compilateur d'optimisation.

Google est ainsi parvenue à réduire de 22% l'empreinte mémoire de son moteur amélioré par rapport à la version V8 v7.1, ceci quand l'optimisation est désactivée.

Google est ensuite allée plus loin, après s'être aperçue qu'il était possible de réaliser la plupart des économies de mémoire du mode Lite sans aucun impact sur les performances en rendant V8 plus paresseux.

Au final, Google déclare avoir réduit de 18% en moyenne la taille du segment mémoire de V8 pour 'une gamme de sites Web classiques'.