Google met un gros coup d’accélérateur au moteur JavaScript de Chrome

Une nouvelle infrastructure de compilation du code permet au moteur JavaScript V8 intégré à Google Chrome de se montrer plus rapide que jamais. Le temps d’exécution du code peut ainsi être réduit par deux.

Les développeurs du navigateur web Google Chrome viennent de dévoiler une nouvelle infrastructure de compilation du code, Crankshaft, dédiée au module just-in-time intégré au moteur JavaScript V8 du butineur.

Tout le problème avec les compilateurs, est que plus ils optimisent le code et plus la génération du code en question prend de temps. L’affichage de la page en est alors retardé d’autant. Crankshaft utilise une approche composée de plusieurs étapes, similaire à celle employée pour la machine virtuelle Java d’Oracle ou le moteur JavaScript Chakra d’Internet Explorer 9.

Le code est tout d’abord compilé sans grosses optimisations, ce qui permet un affichage très rapide de la page. En cours de fonctionnement, un outil détecte quelles parties du code sont les plus utilisées. Ces dernières sont alors recompilées avec un maximum d’optimisations, avant de remplacer le code généré en premier lieu. Au besoin, le code généré initialement pourra remplacer le code optimisé par la suite, s’il s’avère finalement plus rapide.

Avec cette technique, la vitesse de traitement du moteur JavaScript V8 est multipliée par deux sur de nombreuses applications web. Et ce n’est qu’un début ! Toutefois, la complexité de cette nouvelle infrastructure de compilation ne rend cette technique efficace qu’avec du code qui s’exécute pendant une période de temps suffisamment longue. Le gain est ainsi plus marqué avec les benchmarks V8 (+40 % à +50 %) et Kraken (x2) que sous SunSpider (+12 %).

Autre bénéfice, le temps de chargement des pages est réduit, la première phase de compilation du code étant simplifiée au maximum. Google a noté un gain de 12 % sur des applications web lourdes, comme Gmail.

Crankshaft n’est actuellement accessible que sur les machines x86 32 bits. Des adaptations pour les architectures x86 64 bits et ARM sont cependant d’ores et déjà au menu. Le tout est disponible au sein de la Canary Build de Google Chrome, en attendant une arrivée prochaine dans le ‘Dev Channel’.