Home Benchmark protocol History Comparator
PHP Symfony Zend Framework Laravel CakePHP

Benchmark protocol


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

Organization system Ubuntu server 16.04 LTS 64 bits
Processor Intel(R) Xeon(R) CPU D-1531 @ 2.20GHz (6 coeurs, 12 threads)
Storage SSD
Apache Bench Version 2.3 <$Revision: 1706008 $>
nginx 1.10.3
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

Benchmark protocol

All benchmarks are executed 5 times, only best one will be preserved.
50,000 calls will be done for each concurrency (1, 5, 10 and 20).
Benchmarks are executed by Apache Bench and Siege.

Before each benchmark, if init_benchmark.sh exist, it will be included, and init() function will be called.
It initialize repository, clear caches and call tool specific commands to initialize production environment.
PHP FPM is restarted before benchmarking, to clear OPCache.
To initialize OPCache and tool cache, a first not saved benchmark is done.



Best benchmark update benchmarked tool score.
This score is the sum of requests per second of all benchmark types (Hellow World, Rest API etc)
for all concurrencies (1, 5, 10 et 20).
The higher it is, the more the tool is able to respond quickly.

Source code

To have equals chances for each tools, default installation is done.
Nearly no files are modified.
If exist, production environment tutoial will be followed.

All benchmarks source codes are available on github.com/phpbenchmarks.
Do not hesitate to create a pull request to improve your favorite tool result!
English   Fran├žais
© 2017-2018 InfoDroid, by Steevan BARBOYON