HipHop : quand Facebook revoit la runtime de PHP avec un compilateur C++ …

Une rumeur circule depuis quelques temps, à propos d’une ré-inventation de PHP par Facebook pour optimiser les performances de leurs applications. Cette dernière a été désormais par la firme, un ingénieur a travaillé sur une refonte de la runtime de PHP afin d’avoir un résultat compilé et non plus interprété comme c’est le cas actuellement avec la runtime de Zend.
Le projet s’appelle HipHop et il s’appuie non pas sur un compilateur mais plutôt sur un transcodeur qui permet de passer d’un code PHP à un code C++ très optimisé et ce dernier pouvant être compilé avec g++.
Ce travail a mis plus de 2 ans avant de voir le jour et ce travail verra le jour très bientôt dans un projet Open Source sous licence Creative-Commons.
Voici le processus de HipPop pour optimiser une application PHP :

Il s’agit d’une transformation de code qui part de sources PHP, le code est parsé et ensuite optimisé avant d’être traduit en C++. Le code C++ est lui aussi optimiser et ensuite il est compilé via G++ en langage machine.
Certaines fonctions trop gourmande comme « eval() » ne seront pas supportées mais la globalité du langage est supportée.
Les essais de Facebook révèleraient un gain de performance de l’ordre de 80 % coté processeur et l’application Facebook elle-même devrait migrer sur cette technologie d’ici quelques semaines ou quelques mois. Ils devraient réduire de 50 % l’utilisation du CPU pour héberger Facebook ce qui constitue une économie intéressante puisqu’au dernières nouvelles Facebook, utiliserait plus 30 000 machines pour héberger son réseau social.
Aucun trackback pour l'instant
Un point essentiel à ne pas négliger sur une application Web est la ré-écriture d’URL via un système de routeur. Pourquoi ré-écrire des Urls alors que l’utilisateur n’en tape jamais directement ? Et bien tout simplement, parce que l’utilisateur ne comprend pas forcement où il se trouve sur le site en regardant une Url de [...]
A l’heure où les environnements de développement pour PHP sont majoritairement basé sur Eclipse : PHP Development Tools, Aptana et Zend Studio, Netbeans quant à lui se faisait très discret dans le domaine des IDE PHP.
Voici la nouvelle version de NetBeans en release 6.8 avec des outils de développement pour PHP 5 fort intéressants :
Tout [...]
Nouvelle version de Phoogle Map 2.1 toujours basée sur l’API Google Map en version 2.0, cette nouvelle version offre une compatibilité avec PHP 5.3.
La sortie de cette nouvelle version s’accompagne d’une amélioration de la rubrique PhoogleMap sur le site avec des exemples téléchargeables, des sources mises à jour, une présentation approfondie, une PHP Doc [...]
3 octobre 2009 - 18 h 01 min
Tags: Adobe Spry, aptana, Dojo, eclipse, IDE, jQuery, Mootools, PHP, Prototype, python, ruby, ruby on rails, sdk
Posté dans IDE | 3 commentaires
Aptana Studio est un IDE (Environnement de Développement orienté) Web 2.0 et basé sur les fondations d’Eclipse. Son principal avantage est qu’il n’utilise pas les plugin’s traditionnels d’Eclipse au profit de plugin’s développés par aptana qui sont beaucoup plus performants et plus astucieux.
Le logiciel est un environnement complet pour :
- PHP (sans passer le PDT [...]
Sympal est un projet très intéressant de Sensio Labs (société de services à l’origine de Symfony et Doctrine), un plugin très sérieux pour intégrer un CMS dans une application Symfony ! Apparement, on peut supposer au nom que ce projet va reprendre certaines caractéristiques du CMS Drupal mais il n’y aura aucun code de Drupal [...]
2 septembre 2009 - 13 h 54 min
Tags: PHP, Zend Framework
Posté dans Non classé, Zend Framework | 2 commentaires
Nouvelle version de Zend Framework, elle corrige une quarantaine de bugs
Voici la liste issue de la changelog…
Bugs corrigés :
[ZF-7605]: Zend_Application docs mistake
[ZF-7550]: Bootstrap fails after checking out r17414
[ZF-7417]: clarify confusion between ‘resource plugins’ and ‘resources’ in docs
[ZF-7401]: Errors in QuickStart
[ZF-7158]: No automatic creation of Zend_Application_Module_Autoloader for default module
[ZF-7095]: Zend_Application_Resource_Modules [...]
1 septembre 2009 - 14 h 50 min
Tags: cachegrid, debug, PHP, profiling, var_dump, Xdebug
Posté dans PHP | Aucun commentaire
Comme dans tous les langages PHP possède des outils de debugage et de profilage pour optimiser vos applications.
Il existe bien évidement celui de Zend qui est founit avec PHP, cela dit il existe également Xdebug qui est un excellent outil permettant de se configurer sur Eclipse pour faire du debug, d’améliorer les var_dump en [...]
Dans une application, il est impératif de se soucier de la portabilité de son application et de son aptitude à s’intégrer à plusieurs système de base de données. Pour cela, il faut gérer les transactions avec cette dernière avec un outil indépendant d’une base de données.
On appelle cela une couche d’abstraction qui sert intermédiaire entre [...]
28 août 2009 - 8 h 57 min
Tags: DAO, Doctrine, ORM, PHP, Symfony
Posté dans PHP | 4 commentaires
Doctrine ORM PHP 5 dors et déjà présent sur le framework Symfony, prépare une nouvelle version majeure du projet : Doctrine 2.0
Cette nouvelle version exclusivement compatible avec PHP 5.3 au minimum s’avère assez prometteuse et assez ambitieuse.
Petit rappel sur Doctrine : ce projet a été conçu tout comme Propel (basé sur Active Record) dans un [...]
27 août 2009 - 14 h 31 min
Tags: .NET, ADO.NET, DAO, ORM, PHP
Posté dans .NET | Aucun commentaire
Microsoft vient de publier l’ensemble des librairies ADO.NET dans un projet open-source baptisé PHP Toolkit for ADO.NET Data Services.
Il s’agit d’une version PHP qui reprend l’ensemble des librairies et fonctionnalités du sous-framework ADO.NET du .NET Framework. Il s’agit d’un système de DAO (Data Access Object) pour générer des couches d’abstractions aux base de données offrant [...]