Gros consommateur de ressources machines, Facebook est connu depuis toujours pour utiliser le langage de script PHP. L’équipe technique de l’entreprise vient de diffuser un nouvel outil qui permet de gagner environ 50% de temps à l’exécution d’un script PHP.
Avec une base contenant près de 800 millions d’utilisateurs, Facebook se donne beaucoup de mal pour leur offrir un service de qualité et, si possible, suffisamment rapide. Utilisateur du langage de script PHP depuis le premier jour, le plus gros réseau social au monde doit pourtant faire face à un problème d’optimisation de son code presque quotidien. C’est la raison pour laquelle ses ingénieurs ont mis au point un nouvel outil appelé HipHop-PHP qui permet un gain de temps significatif sur le temps d’exécution d’un script.
HipHop-PHP (disponible depuis peu sur le compte GitHub de Facebook) est un outil permettant de transformer du code PHP en C++ et de le compiler avec G++ (le compilateur C++ de code du projet Open Source GNU GCC) sous forme de binaires. Ces binaires s’exécuteraient alors 50% plus vite en moyenne que le code PHP.
Si l’optimisation du code PHP est au coeur de nombreux projets Open Source (dont phc qui permet une assez bonne optimisation – et surtout une bonne « obfuscation » de code), Facebook réalise avec HipHip-PHP ce qui semble être une étape importante vers une diffusion professionnelle d’envergure d’un langage Open Source comme PHP. Mais il faut tout de même relativiser les choses…
En effet, si Facebook a diffusé le code de HipHop-PHP, cet outil reste développé par et pour Facebook. Il sera sans doute utile à quelques sites utilisant PHP qui ont besoin d’une plus grande rapidité d’exécution, mais on ne peut pas imaginer pour le moment l’utiliser « out of the box » dans n’importe quelles solutions.
La notice d’utilisation de cet outil (le fichier README.md) est assez clair à ce sujet puisqu’il est bien indiqué que HipHop-PHP n’est compatible qu’avec les systèmes d’exploitation Linux et FreeBSD et que rien n’est prévu pour les autres. Donc, on reste bien sur une architecture 100% Facebook pour répondre à des besoins concernant Facebook.
Cet outil est publié sous licence Zend et PHP et s’avère tout de même une excellente initiative pour le monde Open Source. Nul doute que nous verrons des outils plus « universels » fleurirent dans quelques mois si tout sa passe bien.
En attendant ce moment, les curieux peuvent jeter un oeil sur HipHop-PHP et commencer à travailler avec.