This week HHVM developers shared the results of their first ever open source performance lockdown. HHVM is Facebook’s open source PHP execution engine, originally created to help make its infrastructure more efficient. WordPress managed hosts, including WP Engine, Pagely, and SiteGround, have added HHVM hosting options within the last year to cater to customers who require better PHP performance.
During the HHVM team’s two week lockdown, developers focused on optimizing builtin functions, dynamic properties, string concatenation, and the file cache. The goal was to maximize requests per second (RPS) with WordPress, Drupal 7, and MediaWiki, using their oss-performance benchmarking tool.
“During lockdown we achieved a 19.4% RPS improvement for MediaWiki workloads, and a 1.8% RPS improvement for WordPress,” Facebook developer Paul Bissonnette reported. “We demonstrated that HHVM is 55.5% faster than PHP 7 on a MediaWiki workload, 18.7% faster on a WordPress workload, and 10.2% faster on a Drupal 7 workload.”
These results were based on configuring each framework with a sample dataset designed to approximate an average installation. In order to create the WordPress workload, the HHVM team used URLs from the hhvm.com access logs to extract data.
The report contains a walkthrough of how the benchmarking tool works to approximate the maximum possible RPS of a server under a high load. Some of the most notable performance differences were summarized in the results of the engine comparison chart, which demonstrates the difference between PHP 5, PHP 7, and HHVM.
During the lockdown, the team also experimented with introducing asynchronous query execution to WordPress, the results of which the team plans to write about in the near future.
As an exercise, we evaluated the benefits of async MySQL in the WordPress environment. By modifying portions of WordPress to take advantage of the async capabilities offered by Hack and HHVM, we were able to examine the potential for performance gains through async execution. In our test environment we separated the MySQL and PHP hosting to separate machines within the same datacenter to approximate a realistic WordPress stack. The introduction of asynchronous query execution can demonstrate performance gains in both RPS and response time.
It will be interesting to see a more detailed report of the benefits they found from introducing async capabilities to WordPress. Overall, the lockdown provided an opportunity for collaboration across open source projects, resulting in a host of optimizations that will help OS frameworks perform better with HHVM in the future. The HHVM team plans to ship these improvements with the next release.