Facebook : un peu de HipHop pour accélérer PHP

Le par  |  1 commentaire(s)
HipHop_logo

Concocté par des développeurs de Facebook, HipHop for PHP est un projet libre pour convertir le code PHP en C++.

PHP est un langage interprété qui est exécuté côté serveur. Très utilisé pour le Web et loué pour sa simplicité, ce langage de scripts montrent, comme d'autres du même genre, certaines limites d'efficacité en termes d'utilisation CPU sur les serveurs Web. C'est ce que souligne Haiping Zhao, ingénieur pour Facebook, qui présente un outil développé depuis deux ans dans le plus grand secret.

HipHop for PHP est un traducteur de code source capable de convertir du PHP en du C++ optimisé. Haiping Zhao précise qu'il ne s'agit pas d'un compilateur, cette charge étant laissée à la discrétion de g++ de GNU. La conversion se fait de manière sémantique, et l'optimisation peut aussi signifier le sacrifice de quelques fonctionnalités de PHP, néanmoins annoncées comme " rares ".

Avec HipHop, Facebook aurait réduit de 50 % en moyenne l'utilisation CPU de ses serveurs Web. Le déploiement de HipHop pour Facebook date de six mois avec concerné 90 % de son trafic Web. Le réseau social dessert plus de 400 milliards de pages basées sur PHP qui sont consultées chaque mois.

HipHop_logoLe projet HipHop est open source. Il intègre son propre serveur Web et demeure incompatible avec Apache. En version bêta, HipHop prend en charge PHP 5.2. Des améliorations restent à apporter et le support de PHP 5.3.

HipHop sera mis en ligne sur GitHub. Pour les développeurs Web, plus de détails sont donnés dans ce billet Facebook, où il est bien spécifié qu'il existe déjà d'autres méthodes pour une amélioration des performances de PHP.

Complément d'information

Vos commentaires

Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Le #590101
J'espère que la fonction "eval" n'est pas considérée comme " rare" ...
Suivre les commentaires
Poster un commentaire
Anonyme
:) ;) :D ^^ 8) :| :lol: :p :-/ :o :w00t: :roll: :( :cry: :facepalm:
:andy: :annoyed: :bandit: :alien: :ninja: :agent: :doh: :@ :sick: :kiss: :love: :sleep: :whistle: =]