Le spécialiste européen de la formation certifiante en informatique et management pour les entreprises

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...

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.

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.

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. (Source 01 net)

EGILIA a obtenu
4.9 / 5 sur
11 avis avec Avis-vérifiés.com

EGILIA https://www.egilia.com/images/egilia-v3/home/logo-egilia.png 22 rue du General Foy, 75008 PARIS +33 800 800 900 De 295€ à 15455€