HipHop für PHP

Der Schleier wurde gelüftet: Facebook hat mit »HipHop« einen Source Code Umwandler veröffentlicht, der PHP-Code in höchst-optimierten C++ Code konvertiert. Dieser wiederum wird dann mit g++ kompiliert um maximale Performance zu erreichen.

Bei Facebook brachte der Einsatz von HipHop eine durchschnittliche Reduzierung der CPU-Auslastung um 50% – natürlich abhängig von der jeweiligen Seite. Für Facebook bedeutet weniger CPU-Last weniger Server – und damit weniger Kosten. Aber natürlich bedeutet weniger Auslastung auch weniger Energieverbrauch.

In seinem Blog-Beitrag schreibt Haiping Zhao »We are proud to say that at this point, we are serving over 90% of our Web traffic using HipHop, all only six months after deployment.

How HipHop Works
The main challenge of the project was bridging the gap between PHP and C++. PHP is a scripting language with dynamic, weak typing. C++ is a compiled language with static typing. While PHP allows you to write magical dynamic features, most PHP is relatively straightforward. It’s more likely that you see if (…) {…} else {..} than it is to see function foo($x) { include $x; }. This is where we gain in performance. Whenever possible our generated code uses static binding for functions and variables. We also use type inference to pick the most specific type possible for our variables and thus save memory.


Overall HipHop allows us to keep the best aspects of PHP while taking advantage of the performance benefits of C++. In total, we have written over 300,000 lines of code and more than 5,000 unit tests. All of this will be released this evening on GitHub under the open source PHP license.

Der ganze Artikel (englisch) im Facebook Blog: