Vos recrutements informatiques

700 000 développeurs, chefs de projets, ingénieurs, informaticiens...

Contactez notre équipe spécialiste en recrutement

Google booste les performances de son moteur JavaScript V8
Grâce à la « compilation concurrente »

Le , par Cedric Chevalier, Expert éminent sénior
JavaScript est un omniprésent sur le Web. Les développeurs y ont recours pour dynamiser le contenu des pages web, et améliorer ainsi significativement l’expérience utilisateur.

Chaque navigateur implémente sa propre solution faite maison pour l’interprétation et l’exécution des scripts JavaScript. Safari utilise JavaScriptCore, Microsoft a recours au moteur Chakra, Mozilla développe Rhino et SpiderMonkey, Google quant à lui à mis sur pied V8.

Les développeurs de Google ont opté pour une approche de compilation à la volée (JIT Compiler) pour V8, qui permet de convertir les scripts du langage en code machine natif, afin qu’ils puissent être exécutés plus rapidement.

Cette conversion à un prix : elle augmente le temps de réponse des pages. C’est la raison pour laquelle, la compilation JIT de V8 s’opère en deux étapes. La première s’exécute juste avant l’exécution d’un script. Elle est rapide, mais ne comporte pas de phase d’optimisation du code machine natif.

Par contre, la deuxième étape de compilation s’opère plus lentement sur les scripts qui doivent être exécutés plus d’une fois. C’est la phase d’optimisation.

Si pour la plupart des scénarios cette approche se révèle amplement suffisante, dans certaines situations elle est inefficace. C’est notamment le cas des applications complexes comme les jeux, ou la seconde phase de compilation provoque irréfutablement une augmentation du temps de réponse de la page.

Les développeurs de Google ont planché sur la question, et en sont venus à la conclusion que l’emploi de la compilation concurrente permettrait de résoudre le problème.

En pratique, les deux phases de compilation à la volée s’opèrent en même temps, sauf que l’étape d’optimisation se fait dans un thread concurrent en arrière-plan. L’implémentation de cette solution a permis à V8 d’accroître ses performances de 27% pour le test Mandreel du benchmark Octane 2.0. Il ne reste plus qu’à attendre la prochaine sortie de Chrome pour bénéficier de ce nouvel ajout.

Source: Blog Chromium

Et vous ?

Qu'en pensez-vous ?


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de Saverok Saverok - Expert éminent https://www.developpez.com
le 18/02/2014 à 14:44
Bien évidement, il nous manque pas mal de détails pour se faire une idée précise. Mais dit comme ça, le multi thread est une solution évidente quand on a plusieurs processus indépendants...
Mais il est toujours plus simple de l'ouvrir une fois qu'on a la solution...
Avatar de LSMetag LSMetag - Membre expert https://www.developpez.com
le 18/02/2014 à 16:57
La chose que je me demande, c'est pourquoi Mozilla ne fait pas pareil avec Firefox ? Le principe est pourtant simple (j'espère qu'il n'est pas breveté). Les performances JS de Firefox sont à la ramasse par rapport au V8.

En tout cas, la différence est en effet assez nette sur les dernières builds "stables" de Chromium (version 34).
Avatar de Zefling Zefling - Membre émérite https://www.developpez.com
le 18/02/2014 à 23:28
Bha, il a des échange des deux côtés, des fois c'est Google qui pique de trucs à Mozilla et d'autres fois c'est l'inverse (principe du libre). Il me semble que V8 est libre (après il y a des histoires de types de licence). Mozilla bosse sur asm.js et d'autres trucs. Puis si on se fie juste aux benchs, difficile de dire qui est vraiment le meilleur.
Avatar de LSMetag LSMetag - Membre expert https://www.developpez.com
le 19/02/2014 à 18:13
Après peut-être que ce n'est pas représentatif.
Offres d'emploi IT
Responsable développement informatique h/f
ACTE INDUSTRIE - Haute Normandie - Le Havre (76600)
Développeur android / amateur de sport h/f
INTEAM - Ile de France - Paris (75000)
Technicien Télécommunications (H/F)
Links IT SERVICES - Haute Normandie - Louviers (27400)

Voir plus d'offres Voir la carte des offres IT
Contacter le responsable de la rubrique Accueil