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)
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.



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).