|
Publicité | |||||||||||||||||||||||
|
|
#1 | |
|
Membre Expert
![]() ![]() Tiger Scott Développeur Web Inscription : juin 2006 Messages : 1 119 ![]() |
Mise à jour du 03.02.2010 (Katleen Erna)
Facebook dévoile sa ré-écriture de PHP, HipHop traduit PHP en C++ puis le compile avec g++ L'information vient d'être officiellement confirmée par Facebook, suite a de nombreuses rumeurs sur la toile qui anticipaient son annonce. Il se murmurait ici et là qu'une équipe du réseau social aurait travaillé sur un nouveau compiler PHP JIT (Just In Time) qui permettrait des augmentations de vitesse allant jusqu'à 80%. Le projet serait assez similaire à l'Unladen Swallow de Google, qui avait consisté en une ré-écriture du compiler de Python. Le projet des équipes de Facebook s'appelle HipHop et il est disponible depuis cet après-midi en open-source. Il résulte d'un travail acharné et secret de deux longues années. Mais contrairement à ce qui était attendu, HipHop consiste en fait en une ré-écriture du runtime de PHP. Le code source de PHP est traduit en C++ puis compilé avec g++. Un ingénieur ayant travaillé sur le projet, Haiping Zhao, déclare : "Avec HipHop, nous avons réduit l'usage du CPU sur nos serveurs web d'environ 50%". Ceci devrait permettre d'allèger le datacenter de Facebook. "HipHop execute le code source d'une manière sémantique et en sacrifie certaines fonctionnalités peu utilisées, comme eval(), pour de meilleures performances. HipHop nous permet de corriger la logique de l'assemblage final d'une page en PHP.", continue-t-il. Il conclut en indiquant que PHP et C++ partagent pratiquement la même syntaxe, mais que C++ est ien moins gourmand en ressources système. RideKick : Mise à jour 02/02/2009 Sortie de HipHop pour PHP par les développeurs de FaceBook Comme annoncé, une équipe réduite de FaceBook a développé un inerpreteur de code PHP. En accord avec l'annonce officielle, HipHop n'est pas un compilateur mais plutôt un convertisseur de code PHP vers C++ qui sera ensuite compilé par g++. HipHop éxecute donc le code PHP sémantiquement et il faudra donc s'attendre à abandonner quelques fonctions propres à PHP au profit des performances comme eval(). HipHop intègre un convertisseur mais aussi une nouvelle implémentation du runtime PHP et une version réécrite des plusieurs librairies communes pour tirer profit au maximum des performances. Comment fonctionne HipHop ? HipHop créé donc du code static qui fait le lien vers les fonctions et variables PHP statiques, ce qui représente une grande part des scripts actuels (en comparaison du code dynamique qui peut être généré avec PHP) Le process de conversion comprends 3 phases importantes :
Ci joint un diagramme de process du fonctionnement de HipHop ![]() Bonjour amis phpeurs, un ami a moi a retenu mon attention quand il m'a parle d'un "nouveau php" qu'il avait lu sur le net. voici donc l'article en question : il s'agit d'un employe facebook qui repond a quelques questions (ses reponses font plus ou moins peur) mais la ou ca devient perturbant : c'est vers la fin : Citation:
parceque 80% d'usage CPU c'est pas negligeable quoi ! |
|
|
|
00
|
|
|
#2 |
|
Membre chevronné
![]() Inscription : juin 2009 Messages : 632 ![]() |
Cela participe au léger regain d'attention qui émerge depuis quelques temps: utiliser du code compilé coté server, à commencer par C++. Au lieu de multiplier les servers et les machines pour supporter la charge, autant utiliser un langage approprié par nature.
__________________
custom blog |
|
00
|
|
|
#3 |
|
Membre actif
![]() Julien CInscription : février 2007 Messages : 202 ![]() |
Je ne suis pas vraiment à l'aise avec ce genre de considérations techniques.
Concrètement pour le développement, ça signifie que l'on risque d'avoir à réapprendre le langage ? du moins en partie ? Ou c'est juste au niveau du traitement que cela change ? |
|
|
00
|
|
|
#4 | |
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 238 ![]() |
Citation:
Si Php ne correspond pas à leur besoin, pourquoi ne pas utiliser un autre langage ? Que je sache, Php n'est pas le seul et unique langage pour créer des sites Web dynamique. Ou alors, ils n'ont qu'à créer leur propre langage, dérivé de Php, C, C++ ou pas, peu importe, cela donnera plus de choix, mais modifier Php selon leur propre exigence, ça me semble un peu radical comme procédé. Déjà que je ne suis absolument pas un partisan des FaceBook ou autre Twiter, alors si ces fous furieux veulent tout révolutionner parce qu'ils n'arrivent pas à stocker/flicker la planète entière dans leur Bdd en 1 seconde, ben là j'suis pas d'accord ![]() Une affaire à suivre en tout cas.
__________________
Win XP | WampServer 2.2 | Apache 2.2.21 | Php 5.3.8 | MySQL 5.5.16 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
|
|
|
00
|
|
|
#5 |
![]() ![]() Développeur Java/Web Inscription : avril 2002 Messages : 12 293 ![]() |
Salut,
De ce que j'en comprend il ne s'agit pas de modifier le langage PHP mais uniquement le moteur, soit mod_php. En clair les sources seront toujours des fichiers PHP standard avec la même syntaxe et les mêmes règles, mais ils pourront être transformé en fichier compilé. L'intérêt étant d'éviter de tout recompiler à chaque requête d'un client. a++ |
|
00
|
|
|
#6 |
![]() ![]() Développeur Web Inscription : décembre 2006 Messages : 2 309 ![]() |
+1 adiGuba
le truc c'est que même facebook ne va pas réécrire son appli, il reste tel qu'il est. La modification intervient plus bas comme on l'a dit plus haut.
__________________
Développeur | Zend Certified Engineer Étapes Pour mieux se servir du forum: 1. Commencez par lire les cours et tutoriels ; 2. Faites une recherche; 3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles; Nix>_Rien n'est plus pratique que la théorie |
|
|
00
|
|
|
#7 |
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 238 ![]() |
Peut être, mais je suis de nature prudente, voir ici méfiante.
Ces gros bisounours qui ont tous l'air forts sympathiques te promette monts et merveilles, 80% de ressources d'économisés ... merci les gars, trop fort Puis un de ces 4 matins tu vois à la une du mag developper.com que Php c'est fait racheté par le gentil bisousours Personnellement, je préfère de loin qu'une société finance un projet Open Source et que la communauté s'occupe de la direction qu'elle veux prendre, au lieu qu'une société impose en quelque sorte l'orientation du projet. Dans ce dernier cas on s'éloigne pas mal de la philosophie Open Source. C'est cela qui m'interroge. Le gain en ressource en est une autre. Brefs ... Un MySQL s'est déjà fait croquer tout cru ... V'là que Php commence à donner des idées à un FaceBook. Dans peu de temps ça sera au tour d'Apache de passer sur l'billard A quand la main mise dessus ? Désolé mais je n'y vois pas là de quoi se réjouir, loin de là
__________________
Win XP | WampServer 2.2 | Apache 2.2.21 | Php 5.3.8 | MySQL 5.5.16 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] Dernière modification par RunCodePhp ; 02/02/2010 à 14h19. |
|
|
00
|
|
|
#8 |
|
Membre Expert
![]() ![]() Tiger Scott Développeur Web Inscription : juin 2006 Messages : 1 119 ![]() |
huhu, c'est en haut ou en bas alors
![]()
|
|
|
00
|
|
|
#9 |
![]() ![]() Directeur technique Inscription : septembre 2006 Messages : 5 960 ![]() |
Pas sur qu'on aille jusque la "main mise".
Si FaceBook modifie une couche bas niveau pour accelerer PHP pourquoi pas parce que : 1- Personne ne saura obligé de l'utiliser, qui voudra en profiter je pense le fera 2- La communauté PHP décidera de l'intégration ou non de ce module, comme elle le fait actuellement pour tout le reste 3- Pour l'instant ce n'est que des suppositions, voir un hoax ......attendons de voir. Et puis si ça fonctionne, que c'est stable et qu'on y gagne réellement sur le principe qui s'en plaindrait ? |
|
|
00
|
|
|
#10 |
![]() ![]() Développeur Java/Web Inscription : avril 2002 Messages : 12 293 ![]() |
Techniquement cela pourrait être très intéressant !
Pour le reste c'est une autre histoire, mais je vois mal l'intérêt qu'aurait Facebook à avoir la main mise sur PHP... a++ |
|
00
|
|
|
#11 |
|
Membre chevronné
![]() Inscription : juin 2009 Messages : 632 ![]() |
Regardons ce qu'il s'est passé pour javascript: d'un simple interpreter (de Netscape en C) qui se contentait d'exécuter un abstract tree, on a aujourd'hui des trace optimizers, JIT compilers voir même de la génération de machine code (Google v8).
Le runtime de php se fait vieux. Le Zend engine 1 (au début des années 2000) a apporté une virtual machine (un exécuteur d'opcodes) mais depuis lors il n'y a rien eu de fondamentalement nouveau. Là il semblerait que facebook fasse du JIT basé sur http://llvm.org (aux dernières nouvelles sur twitter). A suivre. Si tout ceci est vrai et au final rendu publique, alors c'est une excellente nouvelle!
__________________
custom blog |
|
00
|
|
|
#12 | |
|
Membre chevronné
![]() Inscription : juin 2009 Messages : 632 ![]() |
HipHop for PHP: Move Fast
http://developers.facebook.com/news....og=1&story=358 Citation:
__________________
custom blog |
|
|
00
|
|
|
#13 |
|
Membre éprouvé
![]() ![]() Inscription : août 2006 Messages : 312 ![]() |
J'ai trouvé cet article sur l'un des espaces Facebook Developer.
http://developers.facebook.com/news....og=1&story=358 Il semblerait que l'amélioration des performances d'après le développeur qui en parle soit de 50% en moyenne. Pour le principe, c'est un convertisseur de code php en code C++. Ce code est ensuite compilé par la suite par G++. Le projet fait 300.000 lignes et possède 5000 tests unitaires. Il semblerait qu'il soit utilisé depuis 6 mois et est utilisé pour répondre à 90% des requetes sur facebook. Les moins, certaines fonctions sont inaccessibles comme eval. Il n'y a pas d'autres exemples. Ca a l'air d'etre un beau boulot. Pas de précision sur la license de release du code. |
|
|
00
|
|
|
#14 |
|
Membre du Club
![]() Étudiant Inscription : octobre 2006 Messages : 94 ![]() |
|
|
|
00
|
|
|
#15 | |
|
Membre éprouvé
![]() ![]() Inscription : août 2006 Messages : 312 ![]() |
Effectivement, j'avais raté ce passage :
Citation:
|
|
|
|
00
|
|
|
#16 |
|
Expert Confirmé Sénior
![]() ![]() Inscription : juillet 2009 Messages : 1 553 ![]() |
Mise à jour du 03.02.2010
Facebook dévoile sa ré-écriture de PHP, HipHop traduit PHP en C++ puis le compile avec g++ L'information vient d'être officiellement confirmée par Facebook, suite à de nombreuses rumeurs sur la toile qui anticipaient son annonce. Il se murmurait ici et là qu'une équipe du réseau social aurait travaillé sur un nouveau compilateur PHP JIT (Just In Time) qui permettrait des augmentations de vitesse allant jusqu'à 80%. Le projet serait assez similaire à l'Unladen Swallow de Google, qui avait consisté en une ré-écriture du compilateur de Python. Le projet des équipes de Facebook s'appelle HipHop et il est disponible depuis cet après-midi en open-source. Il résulte d'un travail acharné et secret de deux longues années. Mais contrairement à ce qui était attendu, HipHop consiste en fait en une ré-écriture du runtime de PHP. Le code source de PHP est traduit en C++ puis compilé avec g++. Un ingénieur ayant travaillé sur le projet, Haiping Zhao, déclare : "Avec HipHop, nous avons réduit l'usage du CPU sur nos serveurs web d'environ 50%". Ceci devrait permettre d'alléger le datacenter de Facebook. "HipHop exécute le code source d'une manière sémantique et en sacrifie certaines fonctionnalités peu utilisées, comme eval(), pour de meilleures performances. HipHop nous permet de corriger la logique de l'assemblage final d'une page en PHP.", continue-t-il. Il conclut en indiquant que PHP et C++ partagent pratiquement la même syntaxe, mais que C++ est bien moins gourmand en ressources système. Dernière modification par Caro-Line ; 03/02/2010 à 09h54. Motif: co |
|
|
00
|
|
|
#17 | |
![]() ![]() Administrateur systèmes et développeur Web Inscription : juin 2003 Messages : 7 090 ![]() |
Citation:
), mais il est parfaitement compréhensible que cette fonction ait été exclue. Après tout cela consisterait ni plus ni moins qu'à inclure un interpréteur PHP dans le code compilé.En tout cas je trouve que c'est une grande avancée. Merci pour la mise en open source du projet de PHP compilé.
__________________
Responsable technique forum & site Si ce message (ou un autre) vous a aidé et/ou vous semble pertinent, votez pour lui avec
|
|
|
|
00
|
|
|
#18 |
|
Membre du Club
![]() Inscription : juillet 2005 Messages : 62 ![]() |
Depuis des années que je programme en PHP, je n'ai jamais eu besoin d'utiliser un eval() et des projets de grandes envergures comme le Zend Framework n'y font pas une seule fois appel.
Je ne sais plus si je l'ai entendu lors d'une discussion entre développeurs ou lu quelque part, mais pour moi à cette fonction reste attachée une sentence : "eval = code de bourin" (désolé pour le forum )Donc personnellement, m'en passer ne me gênera pas, alors que faire gagner 50% de performances à mes futures applications m'intéresse plus que fortement :] |
|
|
00
|
|
|
#19 |
|
Membre confirmé
![]() Inscription : septembre 2008 Messages : 186 ![]() |
Intéressant.
Dernière modification par Caro-Line ; 03/02/2010 à 09h55. Motif: corrections effectuées merci |
|
|
00
|
|
|
#20 |
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 238 ![]() |
Mais concrètement comment les choses se passent, parce que là ça me dépasse un peu
Est ce que tout ceci sera par exemple intégré dans le moteur (si on peu dire ainsi) de Php ? ce qui sous entend qu'une prochaine version l'intègrera. Ou est ce une sorte de package additionnel (si on peu dire) qui s'occuperait de compiler le code ? En gros, ici ce sera l'utilisateur qui décide d'utiliser ou pas ce "package". Aussi, est ce que cela compile automatiquement ou est une opération manuel après avoir codé ? Quand est il du coté des hébergeurs ? C'est très prématuré j'en conviens, mais quel serait le scénario que l'on pourrait voir à l'avenir ? Pourrait on voir des offres du genre : - Php version interpréteur (mode actuel) - Php version compilée (option HipHop) Ou cela sera t-il possible uniquement sur des serveurs dédiés et c'est le client qui choisira ou pas d'intégrer le mode compilateur. Ou alors toutes les versions de Php futures seront d'offices des versions "compilées" ? Mon discourt est très certainement flou, voir absurde, mais pouvez décrire un peu comment les choses se dérouleraient ? (avec des mots simples )Merci pour vos éclaircissement
__________________
Win XP | WampServer 2.2 | Apache 2.2.21 | Php 5.3.8 | MySQL 5.5.16 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] Dernière modification par Caro-Line ; 03/02/2010 à 09h55. Motif: HS suite modifications |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com