S'identifier / Créer un compte
  • Actualités
  • Dossiers
  • Tests
  • Commentaires
  • INpactiens
Publicité

Flash Info : Fêtons la TVA à 2,1 % : abonnez-vous dès 17 € par an !

Facebook veut accélérer les sites PHP avec son HipHop

Transformer le PHP en C++

Facebook vient de publier un outil qui risque de faire parler de lui dans la communauté des développeurs Web. Il s’agit d’HipHop, qui a pour but final d’accélérer le rendu des pages qui utilisent le langage PHP.

facebook

Comme l’explique Haiping Zhao, développeur chez Facebook, HipHop n’est pas à proprement parler un compilateur. Il faut le considérer comme un outil qui va transformer le code PHP en C++. Ensuite, ce dernier est compilé avec G++, le compilateur dédié au C++ faisant partie du célèbre GCC. La transformation du code se fait de manière sémantique mais peut sacrifier au passage quelques fonctionnalités « rarement utilisées », comme eval(), au profit de performances supplémentaires.

Le code C++ généré par HipHop est décrit comme « hautement optimisé » pour permettre d’accélérer le rendu des pages, tout en diminuant autant que possible l’utilisation des ressources processeurs ainsi que de la mémoire vive. Selon Facebook, l’utilisation d’HipHop aurait permis de réduire de 50 % l’utilisation CPU sur l’ensemble du service.

HipHop contient un outil de transformation du code, une nouvelle implémentation du runtime PHP ainsi qu’une réécriture de la plupart des Extensions PHP pour qu’elles puissent tirer parti des optimisations faites en amont.

HipHop est maintenant publié en version bêta open source. Il est à noter que toutes les modifications apportées à PHP ont été reportées vers le projet PHP pour en partager les bénéfices. Les développeurs qui souhaitent en savoir davantage peuvent consulter le billet complet publié sur le blog de Facebook (en anglais).
Source : Facebook
Vincent Hermann

Rédacteur/journaliste spécialisé dans le logiciel et en particulier les systèmes d'exploitation. Ne se déplace jamais sans son épée.

Publiée le 03/02/2010 à 11:00

Soutenez l'indépendance de Next INpact en devenant Premium

  • Tout le contenu de Next INpact sans pub
  • Et bien plus encore...

Il y a 133 commentaires

Avatar de ano_635145921246249171 INpactienne
ano_635145921246249171 Le mercredi 3 février 2010 à 11:28:33
Inscrite le mercredi 4 novembre 09 - 1252 commentaires
hein?!? première nouvelle.


depuis le 4 oui meme si y'avais quand meme moyen de ruser pour le 3
Avatar de mdc888 INpactien
mdc888 Le mercredi 3 février 2010 à 11:29:27
Inscrit le jeudi 10 mai 07 - 529 commentaires
Ben, jusqu'à preuve du contraire, C++ est un langage objet !

maitrecapello.gif


Oui mais moi je parle de programmation objet en PHP. Bien sur que le C++ est un langage objet, mais quid de la compatibilité entre les deux ?
Passque perso je code pratiquement plus qu'en objet sur PHP... Et ca marche vraiment bien d'ailleurs
Avatar de mdc888 INpactien
mdc888 Le mercredi 3 février 2010 à 11:30:55
Inscrit le jeudi 10 mai 07 - 529 commentaires
D'après ce qu'il marque les tests sont déjà en cours, donc ca doit déjà être suffisamment stable en soit pour être utilisable même en beta...

J'espère...
Mais d'après une info de Vincent ci-dessus, il seraient pas beaucoup de devs, donc la phase de tests doit être raccourcie AMHA.
Avatar de CounterFragger INpactien
CounterFragger Le mercredi 3 février 2010 à 11:30:56
Inscrit le mardi 10 juin 08 - 2197 commentaires

Oui mais moi je parle de programmation objet en PHP. Bien sur que le C++ est un langage objet, mais quid de la compatibilité entre les deux ?
Passque perso je code pratiquement plus qu'en objet sur PHP... Et ca marche vraiment bien d'ailleurs

Ben si le PHP est transformé en C++ et que tous les deux supportent l'objet, il en doit pas y avoir vraiment de problème... De toute façon, j'imagine que le but est d'avoir une transparence totale pour cette transformation !

Edité par CounterFragger le mercredi 3 février 2010 à 11:33
Avatar de nucle INpactien
nucle Le mercredi 3 février 2010 à 11:31:32
Inscrit le mardi 13 juillet 04 - 3587 commentaires
DRH: Alors vous faisiez quoi chez Facebook?

Développeur: Je développais le HipHop!

DRH: Désolé monsieur, mais votre profil ne nous intéresse pas, nous recherchons des gens ayant une expérience professionnelle en programmation.. Pas des danseurs.

Avatar de ano_635145921246249171 INpactienne
ano_635145921246249171 Le mercredi 3 février 2010 à 11:32:54
Inscrite le mercredi 4 novembre 09 - 1252 commentaires
On parlait de C++, qui est un langage orienté objet. PHP, c'est plutôt depuis la version 4 effectivement.


au temps pour moi mais du coup j'ai pas compris pourquoi y'avais debat sur la POO du C++ alors que c'est evident
Avatar de 127.0.0.1 INpactien
127.0.0.1 Le mercredi 3 février 2010 à 11:33:48
Inscrit le mercredi 29 avril 09 - 13213 commentaires

Pas nécessairement. Prend exemple sur Google, sans connaître leur code, je présume quand même que leurs devs sont des tueurs russes. Mais le fait qu'une plateforme soit bien codée ne suffit pas à ce qu'elle puisse supporter une charge infinie. Optimiser ainsi la façon d'exécuter le code permet d'économiser des ressources serveur, et maintenir une durée d'exécution des pages faible sur tout le réseau.


gné ?

Déjà Google a choisi Python, un langage qui s'exécute vite et se compile facilment. Et puis bon, le jour ou facebook aura la meme archi que Google (BigTable et autre MapReduce) et la meme infrastructure (million de serveurs), je pense qu'ils n'auront pas trop besoin d'écrire un cross-compilateur PHP/C++.

Edité par 127_0_0_1 le mercredi 3 février 2010 à 11:34
Avatar de mdc888 INpactien
mdc888 Le mercredi 3 février 2010 à 11:34:20
Inscrit le jeudi 10 mai 07 - 529 commentaires
DRH: Alors vous faisiez quoi chez Facebook?

Développeur: Je développais le HipHop!

DRH: Désolé monsieur, mais votre profil ne nous intéresse pas, nous recherchons des gens ayant une expérience professionnelle en programmation.. Pas des danseurs.



mdr2.gif huit.gif
Avatar de RRMX INpactien
RRMX Le mercredi 3 février 2010 à 11:34:38
Inscrit le mardi 5 août 08 - 861 commentaires
Dommage que cela fasse perdre le seul gros avantage des langages interprétés : eval() justement (et dérivées, il existe une fonction PHP plus véloce me semble-t-il).
Mais bon, c'était évident !

Je me pose la même question, les classes utilisant de l'OO seront-elles prises en charge ?
Au "pire" des cas, il faudra(it) attendre que les devs PHP en fassent une première adaptation, pour voir.
Avatar de pti_pingu INpactien
pti_pingu Le mercredi 3 février 2010 à 11:35:06
Inscrit le jeudi 15 janvier 09 - 9585 commentaires
Enfin ça peut porter ses fruits, si bien entendu on ne se retrouve pas sur un site embarquant du flash et des actions javascript à gogo!

Parce que bon, aujourd'hui, un site bien foutu/bling bling/web2.0, ce n'est pas que du code interprété/exécuté côté serveur.
;