Run benchmarks to evaluate Perpl performance.
- Download repository
- Configure database user and add schema
sakila(user needsCREATE SCHEMAprivilege if you want to setup the Sakila database through Perpl) - Update DB host, user and password in
orms/perpl/config/perpl.jsonandorms/propel2/config/propel.jsonto match your settings - Run
./bin/setup.sh(or go line by line) to install composer packages and download and install Sakila database - Change into
runnerdir and run the benchmarks viacomposer run bench-all(see scripts section in composer.json for other options)
The ORMs are pre-configured to run with the perpl containers. You won't have to set up a database user or edit the config files.
- Mount
perpl-benchmarksfolder into container by adding it todocker-compose-php.yml:
volumes:
...
- /path/to/perpl-benchmarks:/path/to/perpl-benchmarksThen run and log into container (see perpl containers README).
Base setup is for MySql, but Sakila is also available for Postgres and Sqlite.
If you integrate Postgres or Sqlite with current setup, consider creating a PR.
| folder | content |
|---|---|
benchs/<case> |
PHP scripts for each ORM, i.e. benchs/compare_populate/PopulateModelsPerplBench.php |
orms/<ORM> |
fully configured PHP projects for each tested ORM, i.e. orms/perpl-2.8, orms/doctrine, etc |
runner |
benchmark tool (phpbench) setup |
Create issues, discuss results, add missing benchmarks or improve setup through PRs, all is welcome!