Accueil » Actualité » FTL, le nouveau moteur JavaScript de Safari (et WebKit)

FTL, le nouveau moteur JavaScript de Safari (et WebKit)

WebKit, le moteur de rendu utilisé essentiellement par Apple (Google et Opera utilise son fork Blink) se paye un nouveau moteur JavaScript, qui porte le nom de FTL, alias Fourth Tier LLVM. Ce nom vient du fait que WebKit actuellement une architecture en trois parties, avec trois moteurs de rendu pour gérer certains événements particuliers : une exécution directe pour la latence, et deux systèmes qui permettent de « compiler » et optimiser le code pour les sites qui utilisent beaucoup le langage. Le but est d’obtenir un bon compromis entre latence et performances, et c’est évidemment la partie « JIT » (Just In Time) qui est la partie la plus utilisée.

Image 1 : FTL, le nouveau moteur JavaScript de Safari (et WebKit)Architecture 3 tiers

Ce nouveau moteur est donc le « quatrième tiers » et utilise LLVM, un compilateur déjà utilisé par Apple dans d’autres domaines. Sans entrer dans les détails techniques — ce post explique bien les nouveautés —, utiliser LLVM et ses optimisations permet d’aller environ 40 % plus vite dans du code qui tire parti de ASM.js, une bibliothèque très efficace utilisée pour développer de « vrais » programmes en JavaScript.

Image 2 : FTL, le nouveau moteur JavaScript de Safari (et WebKit)Les gains

FTL ne sera utilisé que dans des cas précis, sur du code qui demande un certain temps de calcul, pour que le gain soit intéressant. En effet, la compilation en passant par LLVM demande du temps de calcul, et il faut donc que le gain de celle-ci soit plus grand que la parte due au passage dans LLVM.

Ce moteur de rendu est disponible dans les nightlies de WebKit, des versions de tests qui peuvent être installée sur un Mac et qui utilisent l’interface de Safari. Si FTL est disponible dans WebKit en général, on peut supposer que c’est Apple qui l’utilisera en premier, étant donné que LLVM est déjà utilisé dans Mac OS X et iOS.