Programmez! #239 PDF pour nos abonnés papier

Abonnés papier : en raison de la situation due au coronavirus, des retards sont à prévoir en ce qui concerne la distribution de Programmez! #239 par La Poste. C'est pourquoi nous mettons Programmez! #239 PDF à disposition dans votre compte utilisateur sous un onglet dédié en attendant. Pour y accéder, il vous suffit de saisir votre n° d'abonné (ou éventuellement le ressaisir comme pour l'accès aux archives) dans votre compte utilisateur, si ce n'est pas déjà fait. Si vous ne connaissez par votre numéro d'abonné, vous pouvez l'obtenir à cette page.

En cas de difficultés, contactez le webmaster à partir du formulaire de contact de ce site.

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

Par:
fredericmazue

mar, 30/08/2016 - 15:31

Google vient de publier un très intéressant billet détaillant des progrès réalisés quant à l'empreinte mémoire de son moteur JavaScript V8.

Ce billet explique que V8 et les autres moteurs JavaScript modernes obtiennent leur rapidité à l'exécution d'un compilateur Just-in-Time (JIT) qui compile un script JavaScript en code machine natif juste avant l'exécution. Le code est au départ compilé par un compilateur de base qui génère rapidement un code machine non optimisé. Ce code est ensuite analysé lors de l'exécution et éventuellement recompilé dynamiquement et se voit alors appliquer des optimisations pointues pour gagner en performance.

Avec V8, ce pipeline est complexe car il nécessite de faire des commutations entre le compilateur de base et les deux optimiseurs que sont Crankshaft et Turbofan. Un des problèmes dans tout ça est que ce traitement consomme beaucoup de mémoire, ce qui est peu rentable pour des portions de code exécutés une seule fois.

C'est là que vient l'amélioration Ignition, qui à la place du compilateur de base, compile le code JavaScript en un bytecode concis. Le résultat a une empreinte mémoire de 50% à 25% inférieure à celle du code compilé par le compilateur de base.

Ce bytecode est alors interprété par un interpréteur hautes performances qui montre sur des sites du monde réels des résultats équivalents en terme de rapidité à ce qui était obtenu par l'ancien procédé, assure Google.

L'interpréteur d'Ignition est une machine registre dont chaque bytecode spécifie les entrées/sorties comme des opérandes de registre explicites, ce qui est plus performant qu'une machine à pile avec laquelle le traitement de chaque bytecode consomme des empilages/dépilages.

Ignition viendra avec Chrome 53. Il sera activé sur les appareils Android qui ont une faible capacité mémoire (512 Mo ou moins). Google assure que le gain global de mémoire sera d'environ 5% par onglet ouvert.