Skip to content
Drew Paroski edited this page Dec 1, 2013 · 120 revisions

HHVM is a new open-source virtual machine designed for executing programs written in PHP. HHVM uses a just-in-time compilation approach to achieve superior performance while maintaining the flexibility and ease of use that PHP developers are accustomed to (dynamic features like eval(), rapid run-edit-debug cycle, etc).

HHVM is used by Facebook to serve billions of web requests per day. To date, HHVM (and its predecessor HPHPc before it) has realized over a 9x increase in web request throughput and over a 5x reduction in memory consumption for Facebook compared with the Zend PHP 5.2 engine + APC.

For general discussion and the latest news about HHVM, check out hhvm.com and our Facebook page.

If you would like to report a bug or are having difficulty using HHVM, find us in the #hhvm chat room on freenode or open a github issue here. We are also happy to review and take code contributions here.

Why HHVM

One of the explicit design goals of HHVM 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.

Installing pre-built packages for HHVM

Prebuilt packages for some distributions are available as shown below:

Building HHVM

HHVM is currently under heavy development and at present we only actively test on the Ubuntu distribution. Building procedures should be fairly similar on other linux distros.

Here are some guides for how to get HHVM up and running on your distro:

Mac OS X and FreeBSD are not officially supported or tested but for those who want to experiment or help out:

Other things you can do with HHVM

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

Clone this wiki locally