Show Your Support: This site is primarily supported by advertisements. Ads are what have allowed this site to be maintained on a daily basis for the past 18+ years. We do our best to ensure only clean, relevant ads are shown, when any nasty ads are detected, we work to remove them ASAP. If you would like to view the site without ads while still supporting our work, please consider our ad-free Phoronix Premium.
Quick Test: PHP 5.6 Against Facebook's HHVM
After the PHP 5.6.0 release yesterday I ran some tests of PHP 5.6.0, PHP 5.5.16, and PHP 5.4.32. In that test -- which was using a built-in test of the PHP-based Phoronix Test Suite -- I found the speed of code execution for these common hot paths hadn't changed much from PHP 5.5 to PHP 5.6.
This morning I decided to fire up the latest HHVM (HipHop Virtual Machine) code (v5.6.99-hhvm) to see how its performance compares to PHP 5.6.0 with the Phoronix Test Suite code-paths. The phoronix-test-suite debug-self-test output on PHP 5.6 from yesterday was:
### OVERALL DATA ### PHP: 5.6.0 DETAILED_SYSTEM_INFO: 0.065 seconds LIST_AVAILABLE_TESTS: 0.342 seconds LIST_AVAILABLE_SUITES: 16.346 seconds INFO: 0.016 seconds CLONE_OPENBENCHMARKING_RESULT: 61.829 seconds RESULT_FILE_TO_TEXT: 8.552 seconds DIAGNOSTICS: 0.012 seconds DUMP_POSSIBLE_OPTIONS: 0.010 seconds ELAPSED TIME: 261.519 seconds PEAK MEMORY USAGE: 38.25 MB PEAK MEMORY USAGE (emalloc): 33.915 MB
When running the latest HHVM on the same system with Ubuntu 14.04 LTS:
### OVERALL DATA ### PHP: 5.6.99-hhvm DETAILED_SYSTEM_INFO: 0.221 seconds LIST_AVAILABLE_TESTS: 0.314 seconds LIST_AVAILABLE_SUITES: 14.427 seconds INFO: 0.044 seconds CLONE_OPENBENCHMARKING_RESULT: 64.520 seconds RESULT_FILE_TO_TEXT: 9.320 seconds DIAGNOSTICS: 0.048 seconds DUMP_POSSIBLE_OPTIONS: 0.026 seconds ELAPSED TIME: 266.769 seconds PEAK MEMORY USAGE: 556.339 MB PEAK MEMORY USAGE (emalloc): 78 MB
HHVM is now coming in just behind PHP 5.6 for this particular test. The peak memory usage is also shocking for HHVM but I don't know if their implementation of memory_get_peak_usage() is just radically different from PHP, etc.
Those wanting to learn more about Facebook's HHVM PHP implementation can visit HHVM.com.