IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Facebook crée une machine virtuelle PHP
Et envisage d'abandonner son traducteur de code PHP en C++

Le , par Cedric Chevalier

23PARTAGES

1  2 
Débuté il y a quelques années, l’équipe de développement de Facebook vient de publier l’état d’avancement du projet HipHop VM (Hip Hop Virtual Machine) la nouvelle solution destinée à remplacer son traducteur de code PHP en équivalent C++ pour compilation HPHPc (HipHop PHP-to-C++ compiler).

HPHPc est une solution qui a fait ses preuves. Grâce à elle, les développeurs de Facebook ont pu réduire de 50 % la charge des CPU des serveurs Web de leur Datacenter, rendant ainsi l’expérience utilisateur Facebook plaisante.

Pour qu’HipHop VM (HHVM) soit le remplaçant de cette solution robuste, les ingénieurs de Facebook devaient la rendre plus performante. C’est chose faite, car HHVM présente désormais un pic de performance supérieur à celui de HPHPc.


HHVM utilise une approche de compilation à la volée (JIT Compiler), c'est-à-dire qu’il convertit dans un premier temps du code PHP en Bytecode (HipHop Bytecode) portable entre différentes architectures. Ce Bytecode est ensuite exécuté par la combinaison d’un interpréteur de Bytecode ainsi que le compilateur x64 JIT.

Le gain de performance de HHVM a été un processus long et complexe. Pour en arriver là, les ingénieurs ont dû relever de nombreux défis, imputables en majeure partie à la non-compatibilité de certaines instructions des HipHop Bytecode avec le compilateur x64 JIT. En effet, bien que le compilateur x64 JIT et l’interpréteur de HipHop Bytecode fonctionnent de concert, l’interpréteur est utilisé comme moyen d’ultime recours lorsque le x64 JIT ne peut compiler une instruction de HipHop Bytecode. C’est pour cette raison que HHVM a mis du temps pour dépasser en performance HPHPc.

Le projet HHVM est open source et le code source est téléchargeable sur GitHub. De plus, des paquets précompilés pour les distributions Linux Ubuntu 12.04, Debian 7 (Wheezy) et CentOS 6.4 sont disponibles.

Téléchargez HipHop VM

Source: Facebook

Et vous ?

Qu’en pensez-vous ?

Intégreriez-vous la solution de Facebook pour vos projets d’entreprise ?

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de sinople
Membre chevronné https://www.developpez.com
Le 30/07/2013 à 11:43
Même si c'est open-source, qu'on peut voir le code, le retoucher et tout; Facebook en terme de sécurité c'est pas ça.
Je ne pense pas qu'ils soient particulièrement mauvais dans le domaine, c'est juste qu'il y a un énorme intérêt à trouver dans leur système. Et c'est plus leur condition d'utilisation qui consiste en une faille de sécurité pour tes données sur Facebook que leur compilateur musical.

Au point où ils en sont, ça n'aurait pas été plus simple de faire une migration du code vers du C++ natif ?
J'ai plus l'impression que ce genre de techno est là surtout pour géré des rare cas bancal dans les projets, mais qu'au final, avec la dernière version de C++ qui rend le langage plus flexible, l'utilisation restera marginale.
Ce qui est rare dans un projet c'est plutôt d'avoir besoin d'une puissance de calcul nécessitant ce genre de technologie à la place d'une solution standard. Mais j'utiliserais plutôt le terme complexe que bancal.

Quand à faire migrer leur code vers du C++ natif, j'imagine que la plupart de leur développeur sont orienté technologie Web et que par conséquent ils ne connaissent pas grand chose au C++. Probablement que c'est plus intéressant pour eux d'avoir une team de cador qui optimise le traitement du PHP et des teams de Web developpeur "créatif" qui ajoute des nouvelles fonctionnalités plutôt que d'avoir une team C++ derrière chaque team de Web developpeur pour convertir leur boulot.

Je reste néanmoins d'accord que l'utilisation de ce genre de techno restera marginale pour le simple fait que dans la plupart des projets, ça n'apporte pas grand chose et ça coûte !
5  0 
Avatar de andry.aime
Rédacteur/Modérateur https://www.developpez.com
Le 29/07/2013 à 16:59
Citation Envoyé par Cedric Chevalier Voir le message
Qu’en pensez-vous ?
J'aurai préféré un Reggae VM.
6  2 
Avatar de Errata
Membre régulier https://www.developpez.com
Le 30/07/2013 à 10:53
Qu’en pensez-vous ?
Au point où ils en sont, ça n'aurait pas été plus simple de faire une migration du code vers du C++ natif ?
J'ai plus l'impression que ce genre de techno est là surtout pour géré des rare cas bancal dans les projets, mais qu'au final, avec la dernière version de C++ qui rend le langage plus flexible, l'utilisation restera marginale.
4  0 
Avatar de Klaim
Membre expert https://www.developpez.com
Le 30/07/2013 à 23:38
Il me semblait bien que cette "news" etait vieille: 29 November 2012

Ca vous dirais pas de prendre des sujets actuels au lieu de news pas fraiches? Ca commence a faire beaucoup la.
3  0 
Avatar de FaridM
Membre expérimenté https://www.developpez.com
Le 30/07/2013 à 11:44
Citation Envoyé par Miistik Voir le message
C'est plus cela qui me gêne.

Même si c'est open-source, qu'on peut voir le code, le retoucher et tout; Facebook en terme de sécurité c'est pas ça.
Personnellement, j'aurai pas confiance même si HHVM était le meilleur.

@andry.aime : les Reggae VM cela marche que la Night.
Et pourquoi ça ?
Facebook doit recevoir une tentative de piratage toute les 3 secondes (bon ok j'en sais rien mais je pense que le chiffre doit être énorme).
Il ne faut pas confondre les développeurs de Facebook avec ses utilisateurs.
1  0 
Avatar de thorop
Membre à l'essai https://www.developpez.com
Le 31/07/2013 à 23:52
La raison que j'ai eu des développeurs quant au choix de garder php est pour ne pas avoir à réecrire une grosse partie du code. Mais sinon, en interne Java et C++ sont aussi utilisés. Tout dépend des équipes et des projets.
1  0 
Avatar de abriotde
Membre chevronné https://www.developpez.com
Le 30/07/2013 à 13:43
Ce projet est intéressant mais pour moi la compilation en langage machine reste ce qu'il y a de plus efficace pour la production (Et de plus fiable). Si la version VM dépasse la version traduisant en C c'est parce qu'elle a été plus optimisé que l'autre.
Il est certain que développer dans un langage interprété est ce qu'il y a de plus souple et rapide. En ce sens, je serais d'avis d'avoir PHP classique en dev et la version VM de PHP sur un petit/moyen site/scripts ou l'on interviens facilement en prod. Mais sur un gros site ou une grosse application, utiliser le compilateur en production me parait indispensable. Encore faut-il qu'il optimisent a fond cette version.
0  0 
Avatar de Klaim
Membre expert https://www.developpez.com
Le 30/07/2013 à 23:39
Citation Envoyé par jmnicolas Voir le message

Pas forcément : la VM utilise un compilateur JIT et ça permet dans certaines conditions des perfs meilleures que le compilé pur.
En theorie oui, mais ca n'a jamais ete demontre en pratique. Donc en fait non.
0  0 
Avatar de adc15
Membre régulier https://www.developpez.com
Le 01/08/2013 à 22:39
Citation Envoyé par Miistik Voir le message
C'est plus cela qui me gêne.

Même si c'est open-source, qu'on peut voir le code, le retoucher et tout; Facebook en terme de sécurité c'est pas ça.
Personnellement, j'aurai pas confiance même si HHVM était le meilleur.

@andry.aime : les Reggae VM cela marche que la Night.
Ridicule. Ca sort d'où ?

Les dévelopeurs qui travaillent chez Facebook font partie des plus brillants du monde. Y compris ceux qui bossent sur la sécurité

Et dire que même si c'est open source, on peut pas faire confiance parce que c'est Facebook...sérieusement ?...
0  0 
Avatar de PoulpeGéant
Futur Membre du Club https://www.developpez.com
Le 04/08/2013 à 5:15
Andrei Alexandrescu, un ingénieur de FB et par ailleur du language D , a posté une vidéo concernant cette HHVM. Il s'agit bien sûr d'une app qui tourne côté serveur et qui génère le code html côté client....
Et il semblerait que celà soit fait en D...

[ame="http://vimeo.com/68383350"]Andrei Alexandrescu: The Hip Hop Virtual Machine on Vimeo[/ame]
0  0