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 306
lectures)
Il y a 133 commentaires
manu0086
Le mercredi 3 février 2010 à 12:59:40
#51
Inscrit
le mardi 30 janvier 07
-
2994
commentaires
Faut voir ce que ça donne concrètement.
Cela peut être intéressant sur certains gros sites.
Cela peut être intéressant sur certains gros sites.
misterB
Le mercredi 3 février 2010 à 13:00:01
#52
Inscrit
le vendredi 22 octobre 04
-
133176
commentaires
oui son wiki confirme ça.
c'est donc son choix si l'équipe de développement n'est pas plus étoffée
c'est qu'ils peuvent pas se permettre plus
Je me pose la même question, les classes utilisant de l'OO seront-elles prises en charge ?
trouve moi une seule classe qui ne soit pas de l'oo en php/c++... c'est juste dans la définition de l'oo !
sniperdc
Le mercredi 3 février 2010 à 13:06:42
#54
Inscrit
le vendredi 24 août 07
-
6450
commentaires
gokudomatic
Le mercredi 3 février 2010 à 13:16:18
#55
Inscrit
le mercredi 15 décembre 04
-
11630
commentaires
CounterFragger
Le mercredi 3 février 2010 à 13:21:41
#56
Inscrit
le mardi 10 juin 08
-
2098
commentaires
T'as ce site qui est devenu mythique
FrontPage powaaa !
Firefox 3.6 est donc un navigateur moyenâgeux...
Je connaissais pas cette "légende vivante" !
florian00
Le mercredi 3 février 2010 à 13:24:27
#57
Inscrit
le dimanche 22 avril 07
-
68
commentaires
Au final j'me suis toujours demandé pourquoi on utilisait un langage non compilé. Quand on sait que le nombre de serveurs de google, facebook de yahoo dépasse le million.
Ça risque de leur faire des énormes économies si tous suivent l'exemple.
Ça risque de leur faire des énormes économies si tous suivent l'exemple.
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++.
Ben google a sorti Go, c'était pas un peu le but aussi, de refaire leurs serveurs avec Go ?
trouve moi une seule classe qui ne soit pas de l'oo en php/c++... c'est juste dans la définition de l'oo !
C++ comme PHP n'impose pas l'orienté objet, ce n'est pas du Java ou du .NET.
ça je sais merci
si tu utilises une classe, tu utilises forcément l'oo, d'où ma remarque
si tu utilises une classe, tu utilises forcément l'oo, d'où ma remarque
Il n'est plus possible de commenter cette actualité
Vous devez être connecté ou vous inscrire en haut pour pouvoir participer aux commentaires.













