Developpez.com

Une très vaste base de connaissances en informatique avec
plus de 100 FAQ et 10 000 réponses à vos questions

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

Le , par Cedric Chevalier, Expert éminent sénior
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 ?


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de andry.aime andry.aime - Rédacteur/Modérateur http://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.
Avatar de Miistik Miistik - Membre chevronné http://www.developpez.com
le 29/07/2013 à 17:04
Citation Envoyé par Cedric Chevalier  Voir le message
Intégreriez-vous la solution de Facebook pour vos projets d’entreprises ?

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.
Avatar de Errata Errata - Membre régulier http://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.
Avatar de sinople sinople - Membre chevronné http://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 !
Avatar de FaridM FaridM - Membre expérimenté http://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.
Avatar de Errata Errata - Membre régulier http://www.developpez.com
le 30/07/2013 à 13:14
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.

Ça se forme un dev, mais oui je convient que ça reste pratique d'avoir la couche php pour pouvoir être plus souple, et en ce sens leurs vm est utile.
Mais j'ai du mal a y voir tourner une solution a long terme; avec une app qui grossie de plus en plus et des couche logicielle qui s'empile.
Avatar de abriotde abriotde - Membre confirmé http://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.
Avatar de jmnicolas jmnicolas - Membre éprouvé http://www.developpez.com
le 30/07/2013 à 16:26
Je reste sceptique face à leur choix de s'accrocher à PHP à tout prix, qui est quand un langage bancal quand on parle de "sites" aussi gros.
Vu leur budget ils ont les moyens d'embaucher les meilleurs dev de la planète ...

Citation Envoyé par abriotde  Voir le message
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.

Pas forcément : la VM utilise un compilateur JIT et ça permet dans certaines conditions des perfs meilleures que le compilé pur.
Avatar de Klaim Klaim - Membre expert http://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.
Avatar de Klaim Klaim - Membre expert http://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.
Offres d'emploi IT
Technical leader / moe perle (H/F)
Société Générale - Ile de France - Val de Marne
Data scientist inspection générale (H/F)
Société Générale - Ile de France - Hauts-de-Seine
Architecte de données (H/F)
Société Générale - Ile de France - Ile de France

Voir plus d'offres Voir la carte des offres IT
Contacter le responsable de la rubrique Accueil