Server

A server is 100% dedicated to benchmark, no web sites or application run on it.

Organization system Ubuntu server 18.04.4 LTS 64 bits
Processor Intel(R) Xeon(R) CPU D-1531 @ 2.20GHz
(6 cores, 12 threads)
RAM 32 Go DDR4 ECC
Storage SSD
Apache Bench 2.3
nginx 1.14.0
PHP extensions calendar, ctype, dom, exif, fileinfo, ftp, gettext, iconv, intl, json, mbstring, mysqli, mysqlnd, opcache, pdo, pdo_mysql, phar, posix, readline, shmop, simplexml, sockets, sysvmsg, sysvsem, sysvshm, tokenizer, wddx, xml, xmlreader, xmlwrite, xsl, zip.

Benchmarking protocol

#1 PHP FPM is restarted, to clear OPCache.
#2 Clear all caches and logs, warmup caches if needed.
#3 First unsaved benchmark is launched, 1,000 calls, concurrency 1, to init caches and fill OPCache.
#4 3 benchmarks are launched, 50,000 calls, for each concurrencies (1, 5, 10 and 20).
#5 Only best results are taken into account in Score, for each concurrencies.

Score

10,000

The higher it is, the more the tool is able to respond quickly.
A 10,000 score is 2 times faster than a 5,000 score, 3 times faster than a 2,500 etc.

Each benchmark (Hello World, REST API etc) could have a maximum score of 10,000 for each concurrency (1, 5, 10 and 20).
This score is a for a thousand (% * 1,000) compared to all results, from same benchmark.
Total score is the addition of all scores from all benchmarks and all concurrencies.

Example: Symfony 4.1 took 57,510 ms (faster of all frameworks) to finish Hello World benchmark.
Symfony 4.0 took 58,382 ms for same benchmark.
Symfony 4.1 has a score of 10,000, and Symfony 4.0 a score of 9,850:
10,000 / (58,382 / 57,510).