Skip to content
sgolemon edited this page Jul 27, 2012 · 29 revisions

Inicio (en español)

The most up-to-date instructions on compiling and building the HipHop Virtual Machine (HHVM) from the VM branch can be found here: Building-and-installing-HHVM-on-Ubuntu-12.04.

HipHop for PHP transforms PHP source code into highly optimized C++. It was developed by Facebook and was released as open source in early 2010.

HipHop transforms your PHP source code into highly optimized C++ and then compiles it with g++ to build binary files. You keep coding in simpler PHP, then HipHop executes your source code in a semantically equivalent manner and sacrifices some rarely used features – such as eval() – in exchange for improved performance.

Facebook sees about a 50% reduction in CPU usage when serving equal amounts of Web traffic when compared to Apache and PHP. Facebook’s API tier can serve twice the traffic using 30% less CPU.

Why HipHop

One of the explicit design goals leading into HipHop was the ability to continue writing complex logic directly within PHP. Companies with large PHP codebases will generally rewrite their complex functionality directly as PHP extensions in either C or C++. Doing so ends up reducing the number of people who are able to work on the company’s entire codebase. By keeping this logic in PHP, Facebook is able to move fast and maintain a high number of engineers who are able to work across the entire codebase.

HipHop is not the right solution for everyone deploying PHP. We think it will be useful to companies running very large PHP infrastructures who do not wish to rewrite complex logic within C or C++.

Building HPHPc/HPHPi

HPHPc is the oldest form of HipHop requiring scripts to be statically compiled to binary code. While this is the fastest form of HipHop, it is also the least flexible in terms of development. HPHPi offers the convenience of dynamically compiled scripts (ideal for development), but without some of the speed advantages of HPHPc. Refer to the following guides to build HPHPc/HPHPi from either the master or vm branch.

See Running HipHop to learn more about compiling your source code.

Building HHVM

Current development of the hiphop project is happening on the vm branch. Once we’ve fixed some issues with building this version of HipHop, we’ll be merging back to trunk. In the mean time, please refer to the following guides for how to get HipHop up and running on your distro:

Discussion and support

You can discuss HipHop for PHP and report bugs on the HipHop developer mailing list (or feel free to submit a Pull Request).

The wiki content is licensed under Creative Commons Attribution-ShareAlike License