Actualités

[21/09/2010] Smile participe au Salon e-commerce Paris 2010

Smile sera présent sur le salon e-commerce de Paris, Porte de Versailles, les 21, 22 et 23 septembre et animera deux conférences sur les outils e-commerce open source, mardi 21 septembre, à 16h00.

[06/07/2010] Les Rencontres Mondiales du Logiciel Libre fêtent leur 10 ans à Bordeaux

Smile participera activement aux RMLL du 6 au 11 juillet à Bordeaux en animant plusieurs conférences et tables rondes

[29/06/2010] Smile, élu meilleur partenaire de l’année pour eZ Publish

Une récompense particulière a été décernée à Smile à l’occasion des eZ awards 2010 : le prix de partenaire de l’année.

Toutes les actualités
       
Guillemet ouvrant L'actualité des solutions
et des technologies du web Guillemet fermant

Hip Hop PHP ou la compilation native de PHP par Facebook

Des ingénieurs de Facebook ont écrit un pre-processeur permettant de transformer du code PHP en code C++. Le code C++ peut alors être compilé en machine code par l'intermédiaire du compilateur OpenSource gcc. Ce pre-processeur se nomme HipHop PHP et sera bien disponible sous une licence libre sur le GitHub de Facebook.

La rumeur circulait depuis quelques jours, et l'annonce de c nouveau pre-processeur vient d'être postée :
http://developers.facebook.com/news.php?blog=1&story=358


Côté performance, le binaire final n'utilise que 50% du CPU utilisé par le code PHP natif (déjà secondé par du cache d'opcode).

Le principe n'est pas nouveau, Roadsend par exemple, fait la même opération en passant par Bigloo (un cousin du Lisp) avant de le compiler en langage machine.


En terme de fiabilité, le post nous indique que 90% du contenu servi par Facebook depuis 6 mois est issu d'un code PHP compilé par Hip Hop. C'est donc déjà une belle épreuve du feu.
Au niveau composants système, les détails sont encore légers, on ne sait pas trop s'il faudra utiliser le serveur HTTP Tornado de chez Facebook, mais à priori une installation en FastCGI derrière un Apache devrait tourner.
Néanmoins, il ne s'agit pas de basculer tout le parc applicatif PHP sous HipHop PHP : seul le code source PHP de Facebook a été passé à la moulinette pour l'instant, et rien ne dit que toutes les applications PHP réussiront la compilation.


De plus, les extensions PHP n'étant plus utilisables telle quelles (puisque l'on ne passe plus du tout par le moteur Zend), les ingénieurs de Facebook ont du ré-écrire celles dont ils se servaient.
On imagine donc facilement retrouver PHP GD, PHP MySQL ainsi que PHP Memcached, mais certainement pas tout de suite PHP PostGreSQL ou PHP LDAP par exemple. Néanmoins, le côté libre du projet permettra de voir arriver rapidement les extensions manquantes, ainsi que certainement encore quelques petites optimisations de performance.
Dans tout les cas, cette annonce est une bonne nouvelle : la professionnalisation de PHP par l'intermédiaire de ces frameworks (Zend, Symfony), ainsi que les applications à très forte valeurs fonctionnelles (eZ Publish, Magento, etc...), ont occasionné un gonflement du code PHP exécuté par notre cher mod_php, avec pour effet certains problèmes de performances en charge.


D'autre langage avait bénéficié un temps de ce type de compilation native, comme le Java avec le projet GCJ, mais les avancés en JIT côté JVM avait rendu caduques les efforts de compilation native.
La PHP qui ne tourne pas sur une JVM ne pouvait pas bénéficier du JIT (même si la réécriture de RoadSend PHP sur LLVM permettait d'en espérer un jour).


Cette rupture avec le langage interprété était donc peut être la seule échappatoire pour le PHP dont le coeur avait déjà été optimisé (peut être au maximum) entre la version 4 et la version 5.

Benoît Jacquemont

Commentaires

       
Nicolas Chevallier - http://www.nicolas-chevallier.fr
Effectivement c'est une très bonne nouvelle. J'attends avec impatience des détails supplémentaires ainsi que les premiers retours d'expérience. Aujourd'hui les performances d'un site web sont un point important, pour l'utilisateur, et même pour les moteurs de recherche. Même si le temps de génération d'une page ne joue que pour 20% dans les performances ressenties par l'utilisateur (cf l'équipe Yahoo Performance), un gain de performance et des économies de ressources sont toujours appréciables.
Jeudi 25 Février 2010 @ 11:20
       
Ecrire un nouveau commentaire