Actualités

[21/07/2017] Smile lance les premiers vélos solaires connectés à l’occasion du Sun Trip Tour 2017

Smile, leader des solutions IoT et open source, confirme sa solide expertise sur le marché de l’embarqué en participant activement à la course de vélos solaires du Sun Trip Tour.

[03/07/2017] Smile remporte le Drupagora d'Or 2017 du meilleur site e-commerce

Le vendredi 30 juin, la 3ème édition des Drupagora d'Or s'est déroulée à Paris.

[30/06/2017] Découvrez les projets de nos équipes au Hackathon Data Énergie

Les 29 et 30 juin, le Hackathon Data Énergie s'est déroulé au Liberté Living Lab à Paris.

Toutes les actualités picto
       

Vous avez besoin de mettre à jour votre Lecteur Flash Flash 7

Guillemet ouvrant l'actualité des solutions
et des technologies open source Guillemet fermant
picto

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
picto

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 @ 10:20
       
Ecrire un nouveau commentaire