01Business
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
Logiciels et applis
Développement
FAI-Télécoms
Distribution
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é»

   
 
@01Business_fr sur
à lire aussi
SUR LES MÊMES THÈMES
Wakanda 1.0, nouvel environnement HTML5/NoSQL
Un an après son entrée en Bourse, Facebook veut tourner la page
Le lobby politique de Mark Zuckerberg perd quelques amis
Le Facebook des millionnaires cherche un nouveau modèle économique pour survivre
Facebook s'intéresse à Waze et à son application de "cartographie sociale"
Facebook Home : des débuts décevants mais déjà des nouveautés
Mot de passe Facebook oublié ? Faites appel à vos « vrais amis »
Facebook met plusieurs jours à censurer une vidéo de décapitation
Américains et Britanniques se lassent de Facebook
Büddy Cup : trinquez avec vos futurs amis Facebook
Facebook : Mark Zuckerberg a touché 1,99 million de dollars en 2012
Laurent Solly, ex-chef de cabinet de Sarkozy, dirigera Facebook France
Sur Facebook se côtoient le pire et le meilleur des relations humaines
Facebook Home a été téléchargé 500 000 fois
Les repas gratuits de Google et Facebook dans le collimateur du fisc américain
Facebook a tué la carte postale
Facebook diffusera des publicités vidéo dès le mois de juin prochain
Un mari bigame dénoncé sur Facebook par sa première épouse
Facebook Home est disponible en France sur Google Play
L'Assemblée nationale fait appel à Smile pour sa gestion documentaire