En poursuivant votre navigation sur ce site, vous acceptez l’utilisation de cookies pour vous proposer des services et offres adaptés à vos centres d’intérêts.FERMER  x
Pour en savoir plus et paramétrer les cookies...

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
@01Business_fr sur
à lire aussi
SUR LES MÊMES THÈMES
Tout sur l'ultra HD : 01netTV vous répond (vidéo)
Phone Apps #60 : Facebook dégaine son appli anti-Snapchat (vidéo)
Le patron de PayPal passe chez Facebook
Facebook lance son réseau publicitaire mobile
Facebook assure protéger votre vie privée pour mieux gagner votre confiance
Cloud : Apple est le bon élève vert, Twitter et Amazon portent le bonnet d’âne
Pour John Carmack, Facebook a ce qu’il faut pour développer la réalité virtuelle
La banque d’investissement de la Société générale passe ses équipes à l’agilité
Drones Facebook contre ballons Google : la bataille de l'Internet du ciel (Vidéo)
Facebook rachèterait un fabricant de drones pré-orbitaux
WhatsApp racheté par Facebook : ce qu'il faut savoir
Les 5 raisons pour lesquelles WhatsApp vaut bien 19 milliards de dollars
Ironie du sort : en 2009, Facebook a refusé d’embaucher le cofondateur de WhatsApp
Mark Zuckerberg : « WhatsApp va dépasser la barre du milliard d'utilisateurs »
Phone Apps #39 : Paper, Flappy Birds, Swiftkey Note
Bosch prend enfin Internet au sérieux
Twitter, ou l’oiseau qui veut se faire aussi gros que Facebook ?
Les bastions informatiques, boulets ruineux de la modernisation de l’entreprise
Gap recrute sur Facebook
Smile change d’actionnaire majoritaire