[PHP-DEV] Real-time benchmark suite has just been added

Hi Everyone,

It’s been a while when I sent my email about introducing an automatic benchmark suite I had been working: https://externals.io/message/116323#116323 Now I would like to share an
important milestone of this project:

After doing lots of improvements and fixes throughout the year, the suite now reached the
required maturity level to be able to use it within PHP’s nightly CI jobs (experimentally for now).
Previously, consistency and reliability issues, as well as the lack of financial support prevented
us from doing so. As these issues were addressed by now, we will be able to track the
performance changes of PHP, starting with 8.5.

The initial results are very promising for real-word app based tests (Laravel, Symfony,
Wordpress), indicating that the results are consistent and seemingly reliable. For example run to
run variation of the median absolute results typically don’t exceed 0.001 sec. When
benchmarking a php-src commit against itself, the relative difference for each real-word test
varied between 0.01% and 0.06% (while 0.0% would have been the best possible value).

Unfortunately, unlike real-word apps, micro benchmarks (bench.php and micro_bench.php)
sometimes give inconsistent results, so there is still room for improvements. Besides making
micro benchmarks more reliable, future plans include adding visualization, and coming up with
some notification system which tells us if there is a notable performance regression or progression.

For anyone interested in the project and the results, the benchmark suite is available at
https://github.com/kocsismate/php-version-benchmarks, while the nightly results are committed
into https://github.com/php/real-time-benchmark-data in both human friendly (markdown) and in
machine processable format (tsv). Additionally, a more detailed explanation about the benchmark’s methodology can be found at https://github.com/php/php-src/pull/15696.

Regards,
Máté