Nous ne savions pas que depuis six mois, Facebook utilisait un compilateur personnalisé pour PHP, appelé "Hip Hop". Essentiellement, il prend votre code source PHP et le convertit en C ++. Il est ensuite compilé avec G ++. En conséquence, ils ont réussi à réduire de 50% l'utilisation de leur processeur. Ce projet est apparemment en développement depuis deux ans, mais n’a été dévoilé qu’aujourd’hui à la communauté..
"HipHop pour PHP n’est pas techniquement un compilateur. C’est plutôt un transformateur de code source. HipHop transforme par programmation votre code source PHP en C ++ hautement optimisé, puis utilise g ++ pour le compiler. HipHop exécute le code source de manière sémantiquement équivalente et sacrifie certaines fonctionnalités rarement utilisées, telles que eval (), en échange de meilleures performances. HipHop inclut un transformateur de code, une réimplémentation du système d’exécution de PHP et une réécriture de nombreuses extensions PHP courantes pour tirer parti de ces optimisations de performances. "
"La mise à l'échelle de Facebook est particulièrement difficile, car presque chaque affichage de page est un utilisateur connecté doté d'une expérience personnalisée. Lorsque vous consultez votre page d'accueil, nous devons rechercher tous vos amis, interroger leurs mises à jour les plus pertinentes (à partir d'un service personnalisé que nous avons '. Nous avons créé Multifeed), filtrez les résultats en fonction de vos paramètres de confidentialité, puis complétez les récits avec des commentaires, des photos, des "j'aime" et toutes les riches données que Facebook aime beaucoup, tout cela en un peu moins d'une seconde. HipHop nous permet écrire la logique d'assemblage final de la page en PHP et la parcourir rapidement en s'appuyant sur des services backend personnalisés en C ++, Erlang, Java ou Python pour gérer les flux d'actualités, la recherche, la discussion en ligne et d'autres parties essentielles du site . "
Hip Hop est disponible maintenant et est hébergé sur Github. Vous pouvez le télécharger ici.