HipHop : quand Facebook revoit la runtime de PHP avec un compilateur C++ …

Publié le 03 février 2010 par Alexandre_julien

Une rumeur circule depuis quelques temps, à propos d’une ré-inventation de PHP par Facebook pour optimiser les performances de leurs applications. Cette dernière a été désormais par la firme, un ingénieur a travaillé sur une refonte de la runtime de PHP afin d’avoir un résultat compilé et non plus interprété comme c’est le cas actuellement avec la runtime de Zend.

Le projet s’appelle HipHop et il s’appuie non pas sur un compilateur mais plutôt sur un transcodeur qui permet de passer d’un code PHP à un code C++ très optimisé et ce dernier pouvant être compilé avec g++.

Ce travail a mis plus de 2 ans avant de voir le jour et ce travail verra le jour très bientôt dans un projet Open Source sous licence Creative-Commons.

Voici le processus de HipPop pour optimiser une application PHP :

Il s’agit d’une transformation de code qui part de sources PHP, le code est parsé et ensuite optimisé avant d’être traduit en C++. Le code C++ est lui aussi optimiser et ensuite il est compilé via G++ en langage machine.

Certaines fonctions trop gourmande comme « eval() » ne seront pas supportées mais la globalité du langage est supportée.

Les essais de Facebook révèleraient un gain de performance de l’ordre de 80 % coté processeur et l’application Facebook elle-même devrait migrer sur cette technologie d’ici quelques semaines ou quelques mois. Ils devraient réduire de 50 % l’utilisation du CPU pour héberger Facebook ce qui constitue une économie intéressante puisqu’au dernières nouvelles Facebook, utiliserait plus 30 000 machines pour héberger son réseau social.