Locking Down for Performance and Parity

Posted on November 7, 2013 by

The HHVM team, along with our wonderful open source contributors, is constantly trying to improve the runtime. We know, however, that there is work to do to run the world’s PHP code reliably and consistently.

Every 6 months or so, the HHVM team goes into lockdown. Lockdown is a Facebook tradition where a team picks a few concentrated areas and pushes hard on them. The team is huddled together. No meetings. Specific task focused. Shaving is discouraged.

The HHVM team’s latest Lockdown started on Monday. It is a 3-week effort focused entirely on two things: performance and parity.

We want performance to rise even further

We want performance to rise even further

We want to pass unit tests for as many frameworks as possible

We want to pass unit tests for as many frameworks as possible

The first graph is our performance graph. The second graph is our parity graph, and the percentages are unit tests passing per framework. Simply put, by the end of the three weeks, we want to have had each graph move up and to the right. (Note: The dip you see in the parity graph is our unit test script misbehaving. The script is being continuously modified to make our testing better and more valuable).

The stickies below are an example of the individual tasks to get us there. We have prioritized them by impact (e.g., number of unit tests that will pass upon completion of the task) and length (how many days the task will take to complete). If these stickies are moved to the “Done” column, the graphs should respond favorably.

If we finish these tasks, we will meet our parity goal

If we finish these tasks, we will meet our parity goal

The HHVM team really cares about maintaining a high quality runtime for PHP. At the end of the three weeks, the no shaving mantra having fully taken hold, we are hoping you see a much better HHVM in terms of being able to accurately run a broader array of PHP code, very fast. Stay tuned for the results of this lockdown.

Here are some of the team members during the first week of lockdown. The no shaving mantra is being adhered to.

Here are some of the team members during the first week of lockdown. The no shaving mantra is being adhered to.

Posted in FYI, Parity | Leave a reply

37 Responses to “Locking Down for Performance and Parity”

  1. Bob Brunius says:

    Is mysqli supported yet?

  2. puentesdiaz says:

    Hi there!
    Amazing work! I hope that we can install this tool, very soon over our servers ….

  3. Kobbe says:

    Great work! will typo3 and the typo3 flow framework be supported?

  4. I’m looking forward to see HHVM in top row of the Benchmarks Game. :-)

    You guys give PHP a future. Keep up the good work.

  5. RouteXL says:

    Movember lockdowns are the best. Have fun!

    PS: No Sara mantra too?

  6. Máximo Cuadros says:

    Any idea when will be ready mongodb ext?

    Regards

  7. How difficult is to add __call() and __callStatic() functions?
    I’m using such syntax:
    h::{'section article.some-class[data-article=yes]'}()
    And I need support of this in order to work with HHVM

  8. Jim says:

    Have you tried alternate compilers at all? The Intel compiler, their threading libraries and their ipp libraries for zlib and openssl can speed up certain tasks dramatically.

  9. Louie says:

    laravel, twig, drupal for the win, hope to see this three working next month.. ^__^

  10. Radu says:

    Actually, if I were you, I would focus strictly on the ability of HHVM to run (almosy) any piece of PHP code out there. Maybe on easier installation process too.

    Performance should be a lower priority. What good is it to have extreme performance if the most popular frameworks crash on it ? Like owning a Ferrari and not having gas money….

  11. Bostjan says:

    Are there any plans for Kohana support?

  12. Samuel Demirdjian says:

    Another +1 for Kohana support here.

    Kohana stands out with his native HMVC and cascading file system. The community and core developers are very disciplined and I am sure we can work this out mutually with minimal overhead from your side, pleaaase :-)

    Thank you for efforts and for making PHP better.

  13. Nathan Malcolm says:

    I do hope you’ll be posting up a follow up article on how things went — performance changes, new features, improved parity, etc. :)

  14. Ivan Palamarchuk says:

    thank you, guys!)

  15. Marko says:

    What about WordPress? It’s not in the list, but I remember a graph which said “9x% passing”.

    I would love to finally switch my blog to HHVM. I haven’t seen any crashes so far, but I would sleep better with 100% unit tests passing.

    • Joel Marcey says:

      Marko, we have been trying to automate our unit testing to run all the frameworks simultaneously. WordPress requires some database setup and other things that make this automation a bit difficult right now. The 21 we have listed were a bit easier to automate the unit testing.

      That said, WordPress does work very well with HHVM. We are working on a blog post that discusses some results with WordPress and FastCGI.

  16. RouteXL says:

    Looking forward to the resutts. Not only of the no shaving mantra, but also on the runtime. Will you be posting the post-lockdown post anytime soon?

  17. […] November 4th, the HHVM team went on a 3-week performance and parity lockdown. The lockdown officially ended on November 22th. Overall, this lockdown was a qualified success. […]

  18. Maxx says:

    Really an amazing work guys. The whole PHP community is looking forward for this boon. Many of us long time PHP users want HHVM to push the current code performance to several order of magnitude higher… Keep it up!

Leave a Reply