Pour afficher rapidement les activités de ses 800 millions d'utilisateurs, Facebook a revu la gestion de ses pages en PHP. Facebook a posté sur GitHub sa HipHop Virtual Machine (HHVM), que les ingénieurs de l'entreprise présentent comme un compilateur de PHP Just In Time (JIT). Selon Facebook, ce moteur d'exécution de PHP est 60% plus rapide que sa solution actuelle et utilise 90 % de mémoire en moins.
Facebook a travaillé sur HHVM dans ses environnements de test comme un remplaçant de son système PHP maison. Il devrait probablement s'en servir pour exécuter le code PHP du site Internet. Le site de réseau social avait déjà rendu public en 2010 le code source de son interpréteur PHP, baptisé HipHop .
PHP a été conçu à l'origine comme un langage de script web, utilisé pour ajouter du contenu dynamique aux pages web. Ce langage est un élément vital de Facebook, en ce sens qu'il est utilisé avec JavaScript pour générer chaque page d'accueil des abonnés. HipHop de Facebook transforme les extensions PHP en code C++ optimisé, rendant l'exécution des applications plus véloce. Les développeurs PHP de Facebook peuvent écrire leurs extensions en PHP et HipHop les transformera en code C++. Le site de Mark Zuckerberg a migré l'ensemble de ses propres serveurs sur HipHop en 2010 et a affirmé qu'il avait diminué l'utilisation CPU de moitié. Facebook a publié le code source de cet interpréteur pour que d'autres puissent l'utiliser. À l'époque, Facebook avait aussi développé un interpréteur PHP, appelé HPHPi, qui permet aux développeurs PHP d'exécuter leur code sans les compiler. L'exécution du code depuis HPHPi était plus lente que le code compilé et exécuté sur HipHop, mais il fournissait aux développeurs un moyen plus facile de le débuguer.
Un intérêt pour d'autres entreprises
Avec HHVM, les ingénieurs de Facebook ont combiné la vitesse d'un langage compilé avec la souplesse d'un langage en script. « Un traducteur dynamique peut observer les types de données que le programme exécute et générer du code machine spécialisé » précise Jason Evans, ingénieur chez Facebook dans un blog annonçant la sortie de HHVM. Le site de réseau social indique que HHVM sera réservé à son propre usage, mais « ces technologies d'accélération PHP pourrait être utiles pour d'autres entreprises intégrant PHP » a déclaré Al Hilwa, spécialiste des logiciels chez IDC. Il ajoute que « la complexité du code PHP peut bénéficier de ce type d'optimisation. PHP est le langage dominant côté serveur et une part importante des applications sont écrites dans ce langage ».
Jason Evans estime que du travail doit encore être fait sur HHVM. Le compilateur doit encore être réglé pour une utilisation en production. La traduction de cache code doit être affinée et l'utilisation de sa mémoire doit être réduite. « Nous espérons que la communauté PHP trouvera [HHVM] utile car il évolue et s'engagera avec nous à l'améliorer grâce à des discussions techniques, des rapports d'erreurs, et des contributions au code», conclut l'ingénieur de Google.
Facebook livre son compilateur PHP pour optimiser les pages utilisateurs
Facebook fait évoluer son interpréteur PHP en un compilateur Just In Time (JIT). Ce dernier doit rendre plus performant l'affichage des pages des utilisateurs du site de réseau social et être moins gourmand en ressources.