FaceBook accélère le PHP




Depuis deux jours des bruits courraient sur le Web, annonçant qu’un développeur de FaceBook avait développé un compilateur PHP et que FaceBook allait le mettre à disposition en opensource.

Et bien aujourd’hui c’est officiel, FaceBook a bien travaillé sur l’amélioration du PHP. Pendant deux ans, Haiping Zhao développeur chez FaceBook  a travaillé seul sur le projet top secret HipHop : «Avec HipHop nous avons réduit l’utilisation du processeur sur nos serveurs Web en moyenne d’environ cinquante pour cent, en fonction de la page. Moins de CPU signifie moins de serveurs, ce qui signifie moins de frais généraux».

PHP est un langage interprété beaucoup moins rapide qu’un langage compilé. L’astuce a consisté à traduire le PHP en C++ . PHP et C++ ont une syntaxe proche, et C++ une fois compilé est moins gourmand en ressources système que PHP.

Lorsque vous affichez votre page d’accueil , le site a  besoin de regarder tous vos amis, interroger leurs mises à jour les plus pertinentes, filtrer les résultats en fonction de vos paramètres personnels, puis remplir les histoires avec commentaires, photos, goûts, et tous les données que les gens aiment. Tout cela en moins d’une seconde.

Au lieu de mettre de l’argent dans des serveurs de plus en plus puissants, il valait donc mieux améliorer les performances de PHP. Résultats atteints (300 000 lignes de code ont été nécessaires).

Free video streaming by Ustream





Tags:

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • Twitter
  • RSS

Si vous avez apprécié cet article, s’il vous plait, prenez le temps de laisser un commentaire
ou de souscrire au flux afin de recevoir les futurs articles directement dans votre lecteur de flux.

Une Réponse pour “FaceBook accélère le PHP”

  1. jpvincent dit :

    je complèterais avec les limites concrètes pour les développeurs :
    http://jpv.typepad.com/blog/2010/02/facebook-php-compiler-hiphop-php-les-limites.html
    Apache et PHP5.3 ne sont pas supportés, et il y a certaines restrictions de language qui tournent autour d’eval(), mais qui du coup peuvent empecher certaines librairies de fonctionner

    et du point de vue optimisation, en général on commence par les accès disque, réseau, et base de données. Mais bon un coup de boost sur le CPU ne peut faire que du bien du moment qu’on est conscient des limites 🙂

Laisser un Message