01net Pro Entreprise informatique
Actualités gestion et logiciel informatique professionnel
Offre et recherche Emploi informatique internet
Salon conférences inofrmatique IT ebusiness 01
Le Cloud Computing
Vidéos reportage entreprise acteur informatique
Retrouvez tous les services 01Net dédiés aux professionnels !
Télécharger logiciels Pro et progiciels
Livres blancs e-commerce informatique et nouvelles technologies
Retrouvez l'ensemble des dossiers de la rédaction 01net Entreprise
Les synthèses des bonnes pratiques sur les sujets IT du moment
Agenda
Applications web et logiciels
Développement
FAI-Télécoms
Marché
Matériel
Sécurité
SSII
Système d'exploitation

Facebook livre son moteur PHP haute performance à la communauté

HipHop, c’est le nom du moteur PHP qui délivre toutes les pages Facebook à ses 800 millions d’inscrits. Un système particulièrement performant et fiable...

laisser un avis
Facebook est connu pour s’appuyer sur des solutions open source bien connues du web, mais aussi pour les pousser à un degré extrême de performance. C’est le cas de la base de données MySQL, qui constitue le cœur du service, et c’est aussi le cas du langage PHP, qui génère toutes les pages du service. Devant le succès croissant du réseau social, les équipes de développement ont cherché une solution pour rendre ce langage dynamique plus rapide et plus efficace. Livrer les pages le plus rapidement possible est en effet, depuis l’origine de Facebook, l’une des grandes obsessions de Mark Zuckerberg, et ce pari s’avérait de plus en plus difficile à tenir alors que les serveurs de Facebook doivent délivrer des centaines de milliards de pages chaque mois (400 milliards en début 2010).

Faire plus fort que le PHP interprété

Pour faire face à cette montée en charge sans précédent, Facebook s’est longtemps appuyé sur le moteur PHP Zend Engine. Le réseau social collaborait avec l’éditeur israélien bien connu de la communauté PHP pour déboguer et améliorer ce moteur. Toutefois, devant l’afflux de visiteurs, Facebook a voulu passer à la vitesse supérieure et revoir son approche vis-à-vis de PHP. Langage interprété, PHP est, par nature, plus lent qu’un langage compilé, d’où l’idée de générer du code C++ et de le compiler pour bénéficier d’une performance maximale sur les serveurs de production du réseau social.
Les gains de performance apportés par les développeurs Facebook sur leur moteur PHP.
agrandir la photo
Plus facile à dire qu’à faire. Les ingénieurs ont choisi de passer par une étape intermédiaire, le code AST (Abstract Syntax Tree) avant de générer le code C++ qui va ensuite être compilé en binaire x64. C'est le projet HipHop. Revers de la médaille, si Facebook annonce que ce projet supporte l'essentiel de PHP version 5.3, quelques fonctions ont été sacrifiées sur l’autel de la performance. Donc, pour aider les développeurs, Facebook a créé HPHPI, un interpréteur permettant de déboguer et valider le comportement de leur code avant sa compilation puis sa mise en production.
Depuis, Facebook n’a cessé de développer son approche et a largement optimisé son moteur avec un gain d’efficacité d’un facteur x1,7 entre septembre 2010 et mars 2011. Désormais, tous les efforts d’optimisation de Facebook sont accessibles à tous les sites puisque HipHop a été publié en open source, sur github.

Facebook apporte un peu de souplesse à son approche

Le code php est converti en bytecode HHBC exécuté par la machine virtuelle Hiphop VM.
agrandir la photo
Toujours dans un but de performance maximale, Facebook a dans un premier temps préféré cette compilation statique à une solution de type compilateur JIT (Just in Time), c'est-à-dire au moment de l’exécution de la page comme on retrouve notamment sur C# et Java. Cette approche vient de s’assouplir avec le lancement de  HipHop Virtual Machine, un compilateur JIT pour ce PHP revu et corrigé par Facebook. Cette fois, le code PHP est traduit en AST, lui-même étant traduit en HHBC (HipHop bytecode). De la même façon que le bytecode Java, celui-ci est ensuite converti en langage machine x64 pour être exécuté dynamiquement, ligne à ligne. L’approche est plus rapide que la solution de l’interpréteur, et qui plus est, Facebook a publié les spécifications de ce bytecode, ce qui pourrait intéresser des éditeurs d’outils PHP voulant exploiter cette approche.
envoyer
par mail
imprimer
l'article
PAS D'AVIS SUR CET ARTICLE
Répondre
 

Avis sur «Facebook livre son moteur PHP haute performance à la communauté»

   
 
à lire aussi
SUR LES MÊMES THÈMES
High-tech : dix entrées en Bourse qui ont mal tourné
Facebook : éliminez les spams [MAJ]
Facebook, le cafouillage boursier le plus cher du monde
Six pistes qui expliquent le raté boursier de Facebook
Réseaux sociaux : Microsoft fait-il de l'ombre à Facebook ?
Facebook vaut-il 104 milliards de dollars ?
La f-santé, mieux que le DMP
Android : Facebook achète l'appli Lightbox... pour la faire disparaître
Le pari de Facebook pour son entrée en Bourse
Informatica enrichit les bases clientèles avec les réseaux sociaux
Facebook teste la mise à jour de statut payante
La FTC s’interroge sur le rachat d’Instagram par Facebook
Facebook : un road show pour séduire les investisseurs
OpenOffice 3.4 : Apache tente de rattraper LibreOffice
Facebook : l'entrée en Bourse qui pose question
App Center : Facebook va lancer son propre marché d’applications
Des stars dangereuses pour les comptes Facebook
Facebook pourrait lever plus de 12 milliards de dollars
Facebook : déconnectez une session à distance