Quick Test: PHP 5.6 Against Facebook's HHVM

Written by Michael Larabel in Programming on 29 August 2014 at 08:06 AM EDT. 16 Comments
PROGRAMMING
While PHP 5.6 was just released, Facebook's HHVM remains a competitive, alternative implementation that continues gaining new features and is being ruthlessly optimized by Facebook engineers.

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.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week