Chrome : Ignition doit réduire la consommation de mémoire vive autour de JavaScript

Bon, de 5 % dans un premier temps
Logiciel 2 min
Chrome : Ignition doit réduire la consommation de mémoire vive autour de JavaScript

Durant la conférence BlinkOn, Google a présenté un nouvel interpréteur JavaScript pour Chrome. Baptisé Ignition, il aura dans un premier temps la mission de réduire la consommation de mémoire vive, particulièrement sur les appareils mobiles.

Le JavaScript, comme tout langage de script, est interprété ou compilé. Contrairement à un exécutable binaire qui peut être exécuté directement, il doit d’abord être traduit en langage machine. C’est le travail du compilateur JavaScript à la volée (just-in-time), qui permet de générer de l’assembleur avant de l’envoyer pour traitement au processeur.

Dans la machine virtuelle JavaScript V8 de Chrome, ce compilateur est basique : il doit avant tout générer un code machine aussi rapidement que possible. Cette phase, dont la durée doit être minimale, a l’inconvénient de pouvoir consommer une grande quantité de mémoire vive, même quand le code n’est exécuté qu’une fois. Ledit code circule en fait dans un pipeline d’exécution, qui permet en fonction de ce qui y est détecté de passer le relai à deux autres compilateurs, optimisés ceux-là : Crankshaft et TurboFan.

Ignition simplifie le pipeline d'exécution

Arrive Ignition. Il s’agit d’un nouvel interpréteur de JavaScript, qui peut se substituer au compilateur de base en début de pipeline de V8. L’intérêt d’Ignition est double selon Google : simplifier la chaine d’exécution et procéder à une compilation moins gourmande en mémoire vive. Pour ce faire, Ignition applique une recette connue : le script compilé est transformé en bytecode, un code « prémaché » dont le poids ne représente plus que la moitié, voire le quart de celui d’un code compilé basique.

google chrome ignition

Le bytecode passe ensuite à la moulinette d’un autre interpréteur, conçu pour cette opération. Le résultat dispose des optimisations spécifiques à la plateforme matérielle détectée. Google n’a pas réinventé la roue : l’éditeur a tout simplement réutilisé les instructions macro-assembleur de TurboFan pour concevoir Ignition. Il fournit donc au compilateur final un code équipé de tous les « marqueurs » nécessaires pour une architecture donnée.

Uniquement pour Android sur de petits appareils pour l'instant

Ignition devra cependant attendre pour révéler son plein potentiel. Il ne sera actif dans un premier temps que dans la version Android de Chrome, et uniquement pour des appareils qui disposent de 512 Mo de mémoire vive ou moins. D’après les tests réalisés par Google, la consommation en mémoire diminue d’environ 5 % sur chaque onglet.

Ross McIlroy, qui en gère le développement, indique cependant qu’Ignition offre d’autres possibilités, notamment de pouvoir « prendre de meilleures décisions » sur le bon moment pour exécuter et optimiser le code, grâce à la simplification du pipeline. Ceux qui souhaitent en savoir davantage sur Ignition pourront lire la présentation réalisée par Google.

Vous n'avez pas encore de notification

Page d'accueil
Options d'affichage
Abonné
Actualités
Abonné
Des thèmes sont disponibles :
Thème de baseThème de baseThème sombreThème sombreThème yinyang clairThème yinyang clairThème yinyang sombreThème yinyang sombreThème orange mécanique clairThème orange mécanique clairThème orange mécanique sombreThème orange mécanique sombreThème rose clairThème rose clairThème rose sombreThème rose sombre

Vous n'êtes pas encore INpactien ?

Inscrivez-vous !