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.
Comme l’explique Haiping Zhao, développeur chez Facebook, HipHop n’est pas à proprement parler un...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.
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).
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.
Le 3 février 2010 à 11:00
(30 348
lectures)
Soutenez l'indépendance de PC INpact en devenant Premium
- Tout le contenu de PC INpact sans pub
- Et bien plus encore...
Il y a 133 commentaires
mr.tux
Le mercredi 3 février 2010 à 17:33:18
#101
Inscrit
le samedi 29 juillet 06
-
857
commentaires
haaaa, enfin quelque chose de bien qui ressort de Facebook!
bizarrement c'est pas là que je l'aurait attendu, mais c'est une très bonne idée! et une très bonne initiative!
bizarrement c'est pas là que je l'aurait attendu, mais c'est une très bonne idée! et une très bonne initiative!
+1
Compilé un langage interprété c'est ça le 21éme siècle !
Sans rire c'est un très bon point pour ce langage afin qu'il pénètre un peu plus l'univers PRO.
127.0.0.1
Le mercredi 3 février 2010 à 17:44:57
#102
Inscrit
le mercredi 29 avril 09
-
12358
commentaires
Le langage dans le langage, c'est ça qui me gêne.
En terme de maintenance, c'est assez dangereux... Insérer du C dans du java, c'est quand même la première fois que j'en entends parler !
En terme de maintenance, c'est assez dangereux... Insérer du C dans du java, c'est quand même la première fois que j'en entends parler !
Insérer du C dans du java ?
Heu non. Les appels natifs (en Java ou C#) c'est une fonctionnalité "normale" du langage. C'est prévu dans la spec. C'est documenté, sécurisé, ca viole pas les paradigmes, bla bla...
C'est justement pour pouvoir "sortir" de la VM et faire des choses spécifiques : accès au hardware, a des fonctions systèmes, des routines optimisées, ...
CounterFragger
Le mercredi 3 février 2010 à 17:51:42
#103
Inscrit
le mardi 10 juin 08
-
2113
commentaires
Insérer du C dans du java ?
Heu non. Alors considère que je n'ai rien dit et que j'ai mal compris, mea culpa !
Les appels natifs (en Java ou C#) c'est une fonctionnalité "normale" du langage. C'est prévu dans la spec. C'est documenté, sécurisé, ca viole pas les paradigmes, bla bla...
C'est justement pour pouvoir "sortir" de la VM et faire des choses spécifiques : accès au hardware, a des fonctions systèmes, des routines optimisées, ...
Je viens de lire vite fait une documentation sur JNI, vu comme ça c'est effectivement beaucoup plus intéressant !
127.0.0.1
Le mercredi 3 février 2010 à 18:00:44
#104
Inscrit
le mercredi 29 avril 09
-
12358
commentaires
Alors considère que je n'ai rien dit et que j'ai mal compris, mea culpa !
y a pas d'mal.
À la différence du Vala, ooc n'utilise pas les GObjects de gnome/gtk, qui sont assez lourds et peu efficaces.
gokudomatic
Le jeudi 4 février 2010 à 07:48:07
#107
Inscrit
le mercredi 15 décembre 04
-
11669
commentaires
Ca me rappelle un débat sur PCI où une personne(elle se reconnaitra
) laissait entendre que javascript était aussi rapide et faisait autant que silverlight (.NET) mais oui, tout à fait. Cette personne a parfaitement raison.
charon.G
Le jeudi 4 février 2010 à 12:50:02
#108
Inscrit
le vendredi 29 avril 05
-
6405
commentaires
mais oui, tout à fait. Cette personne a parfaitement raison.
En fait tu as raison, d'ailleurs il faut avouer que VB6 est plus rapide que java. Demande a ndjpoye
Edit: En fait c'est juste ce que certains ont trouvé pour cautionner le bide du chrome OS. Mauvaise foi quand tu nous tiens....
Edité par charon.G le jeudi 4 février 2010 à 12:51
En fait tu as raison, d'ailleurs il faut avouer que VB6 est plus rapide que java. Demande a ndjpoye
Plus rapide que tout autre langage d'ailleurs
Sauf peut être delphi 2
charon.G
Le jeudi 4 février 2010 à 16:16:32
#110
Inscrit
le vendredi 29 avril 05
-
6405
commentaires
Plus rapide que tout autre langage d'ailleurs
Sauf peut être delphi 2
Sauf peut être delphi 2
Ca poutrait tellement que je crois que les premiers bios avaient un interpréteur VB. On n'a jamais fait mieux singularity a coté c'est rien
Il n'est plus possible de commenter cette actualité
Vous devez être connecté ou vous inscrire en haut pour pouvoir participer aux commentaires.













