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