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 307
lectures)
Il y a 133 commentaires
pas bête mais dans le cas d'hébergement, du PHP modifié sera autorisé ?
geekounet85
Le mercredi 3 février 2010 à 11:06:19
#2
Inscrit
le mercredi 9 juin 04
-
7601
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!
Mokona
Le mercredi 3 février 2010 à 11:06:55
#3
Inscrite
le mercredi 4 novembre 09
-
1210
commentaires
il faudrait le meme outil pour les techno web java plutot
le traitement php n'as pas tant besoin que ca d'etre acceléré sauf si c'est mal codé à la base
le traitement php n'as pas tant besoin que ca d'etre acceléré sauf si c'est mal codé à la base
Super !
Mais c'est pas ça qui rendra les gens moins polio des doigts quand ils écrivent sur FB...
Mais c'est pas ça qui rendra les gens moins polio des doigts quand ils écrivent sur FB...
127.0.0.1
Le mercredi 3 février 2010 à 11:09:47
#5
Inscrit
le mercredi 29 avril 09
-
12252
commentaires
Comme déjà dit sur beaucoup d'autres sites de dev : quand on en vient a réécrire le compilateur, c'est qu'il est temps de revoir l'architecture de l'application.
Il s'agit plus d'un traitement coté serveur donc sur les hébergement mutualisé peu de change d'avoir ca avant un petit moment.
Vincent_H
Le mercredi 3 février 2010 à 11:12:49
#7
Inscrit
le jeudi 30 janvier 03
-
14907
commentaires
Comme déjà dit sur beaucoup d'autres sites de dev : quand on en vient a réécrire le compilateur, c'est qu'il est temps de revoir l'architecture de l'application.
Ils en parlent dans le billet, comme de changer de langage tout court. Mais le gars explique que l'équipe de développement est trop petite pour se le permettre actuellement.
atomusk
Le mercredi 3 février 2010 à 11:13:05
#8
Inscrit
le mardi 20 juillet 04
-
19844
commentaires
Il s'agit plus d'un traitement coté serveur donc sur les hébergement mutualisé peu de change d'avoir ca avant un petit moment.
Si un petit traitement coté serveur effectué un fois peut baisser la consomation à chaque acces, je pense qu'il y a moyen que ça vienne vite sur les hébergements mutualisés
pti_pingu
Le mercredi 3 février 2010 à 11:15:25
#9
Inscrit
le jeudi 15 janvier 09
-
9183
commentaires
Un autre moyen d'accélérer Internet?
Si un petit traitement coté serveur effectué un fois peut baisser la consomation à chaque acces, je pense qu'il y a moyen que ça vienne vite sur les hébergements mutualisés
J'espère...
Mais encore faut-il que ce soit vraiment optimisé et sans bugs...
Bref, pas pour demain.
La bonne nouvelle c'est que FB va essuyer les platres pour les autres, et quand ce test grandeur nature sera concluant, on pourra y aller
Mais bon, comme ca, la maintenant, aucune envie d'utiliser cette solution, il y a déjà bien assez de problème comme ca avec le PHP...
Et d'ailleurs, quid du support de la programmation par l'objet, etc...
Il n'est plus possible de commenter cette actualité
Vous devez être connecté ou vous inscrire en haut pour pouvoir participer aux commentaires.













