Actualité

Mac

FTLJIT : un moteur JavaScript de folie en préparation pour Safari ?

Par Didier Pulicani - Publié le

On connaissait déjà SpiderMonkey, le moteur JavaScript de Mozilla ainsi que v8, la version que Google utilise dans Chrome et Node.js, Ces modules sont aujourd'hui indispensables à tout navigateur qui se respecte et permettent de faire la différence dans la vitesse d'exécution du code, et donc, dans la réactivité générale des interfaces.

Chez Apple, on a créé JavaScriptCore également connu sous le nom de Nitro. C'est lui qui anime le coeur de Safari sur Mac et sur iOS. Cupertino a toujours fait de son moteur l'une des forces de son navigateur, qui se retrouve souvent en tête des tests de vitesse face à ses concurrents. Mais ces derniers temps, Safari se fait un peu distancer, notamment par Mozilla et ses fameuses optimisations asm.js qui promettent une exécution proche du code natif, mais pas sans contraintes pour les développeurs (un bon article sur la question, ici).

La Pomme prépare donc le terrain pour sa prochaine évolution de JavaScriptCore, qui devrait intégrer très bientôt un tout nouveau moteur baptisé FTLJIT. Ce dernier utilise LLVM pour la compilation en temps réel, ce qui permettrait d'obtenir des performances bien plus élevées, même si le code n'est pas spécialement optimisé. Pour le moment, le moteur est encore au stade expérimental, et l'on ne devrait pas le retrouver dans Mac OS X avant plusieurs mois (peut-être dans 10.10, qui sait ?))

Les premiers benchs semblent en tout cas assez encourageants et la team d'AreWeFastYet a d'ailleurs prouvé que cette version de Safari pouvait largement dépasser Chrome suivant le type de calcul demandé :

FTLJIT  : un moteur JavaScript de folie en préparation pour Safari ?


Il se murmure déjà que Google plancherait sur une approche LLVM de son moteur V8, histoire de ne pas perdre du terrain face à la concurrence...

https://trac.webkit.org/wiki/FTLJIT?version=8