Before we've jitted the first bit of the TC, having so many threads leads to a pathological situation: we accept a bunch of requests (135) and have all of them running in the interpeter, starving the JIT thread that is trying to make them all go faster. (Perf record of a machine in this situation shows the vast majority of the time in dispatchImpl, SrcDB::find, and enterTC). This diff tries to solve this by limiting the number of threads to the number of cores for the first N requests.
HipHop VM for PHP
HipHop VM (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 that PHP developers are accustomed to. HipHop VM (and before it HPHPc) has realized > 5x increase in throughput for Facebook compared with Zend PHP 5.2.
HipHop is most commonly run as a standalone server, replacing both Apache and modphp.
Installing
You can install a prebuilt package or compile from source.
Contributing
We'd love to have your help in making HipHop better. If you run into problems, please open an issue, or better yet, fork us and send a pull request.
If you want to help but don't know where to start, try fixing some of the Zend tests that don't pass. You can run them with hphp/test/run. When they work, move them to zend/good and send a pull request.
Before changes can be accepted a Contributors Licensing Agreement must be signed and returned.
Licence
HipHop VM is licensed under the PHP and Zend licenses except as otherwise noted.