making bbPress (and WordPress) work better!

WordPress 4.3 benchmark: HHVM 3.9 vs PHP 7.0

A casual Sunday morning benchmark for August 9th 2015 using latest builds:

1000 Front Pages of WordPress (virtually stock default install)
HHVM 11.99, 11.83, 11.81, 11.78, 11.85 seconds
PHP7 11.18, 10.95, 10.85, 10.96, 10.88 seconds

Using
WordPress trunk 4.3 RC2
HHVM trunk 3.9-dev
PHP trunk 7.0 RC1
(on CentOS 7)

These are SEQUENTIAL timings, no parallel processing, how fast can each page be served and completely come back to the OS.

Using direct calls via fastcgi socket, this means no nginx or internet overhead to confuse the timings, both HHVM and PHP were called directly to process the webpage.

Both HHVM and PHP 7.0 were first given 1000 passes to “warm up” their caches.

Oh and very interesting side note:
Compile time for HHVM: 35 minutes
Compile time for PHP7: 2 minutes (yes, TWO)
(using make -j5)

HHVM is no longer the king. PHP7 is going to take over.

14 responses

  1. That is very interesting, showing run-times and compile-times!

    August 9, 2015 at 10:07 am

  2. Thanks for sharing your research. This information is super useful for some of us. I’m currently running HHVM as it really lit a rocket up my websites butt as soon as I tried it out. But it’s not perfect by any means, and has it’s fair share of problems.

    BTW, I’ve been chatting about your post on Twitter:

    August 10, 2015 at 4:07 am

  3. Pingback: WordPress 4.3 benchmark: HHVM 3.9 vs PHP 7.0 | The WordPress C(h)ronicle

  4. Nice! Any significant differences in CPU load and memory usage?

    August 10, 2015 at 3:36 pm

    • Ah good questions.

      This was more “quick and dirty” just to see how fast they could execute php code in “single file”.

      I would have to more carefully test loads and parallel requests to see how much better each one does under load, perhaps a part2 someday soon.

      HHVM suffers from a lack of a real way to turn off file stat unless you turn on RepoAuthoritative mode, but that has too many side effects for real-world server use unless you have a very static system. Turning off file stat is important with WordPress because of the 100+ php files that are included on every page load.

      August 10, 2015 at 3:42 pm

      • RepoAuthoritative mode is definitely something I’d like to look more at, since they claim another ~15% improvement with that. Need to dig out create_function() and eval() calls though.

        August 10, 2015 at 3:45 pm

      • and preg/e but I think that is long gone – eval is typically removed from most programs by now for security but create_function is much harder to replace

        however unlike PHP’s opcache, there is no way to purge a single file once HHVM is in RepoAuth mode, so that is a pain. They really need to get cracking if they want to be competitive…

        I think PHP7 will be good under load because it is twice as fast from literally cutting down the number of cpu instructions for WP: 9.5 billion to 2.5 billion: https://wiki.php.net/phpng#performance_evaluation

        August 10, 2015 at 4:00 pm

  5. Wow. The long time waiting will result in some awesome benchmarks. This are good news πŸ™‚

    August 11, 2015 at 4:34 am

  6. Pingback: Der PHP 7 Migration Guide - entwickler.de

  7. Sweet nice results ! Just updated Centmin Mod LEMP for 7.0 RC support https://community.centminmod.com/threads/php-7-0-0rc-releases-centmin-mod-updating-php-fpm.4183/ as well πŸ™‚

    35min vs 2min install time !

    August 20, 2015 at 4:23 am

  8. Reblogged this on Teague Talk.

    September 20, 2015 at 2:49 am

  9. Pingback: PHP 7 ist da – der Beginn einer neuen Γ„ra - entwickler.de

  10. itsystemid

    Reblogged this on carasimpeldotcom.

    April 25, 2018 at 5:59 am

  11. Pingback: PHP 7 ist da – der Beginn einer neuen Γ„ra > Seekalgo

Leave a comment