PHP ORM Benchmark
ORMs to Benchmark
- Doctrine ORM v2.5.2
- Eloquent ORM (illuminate/database) v4.2.17
- FuelPHP Orm 1.7.3
- Phalcon ORM 2.0.8
- Propel ORM 2.0-dev
- Yii ActiveRecord 1.1.16
- Yii ActiveRecord 2.0.6
Results
These are my benchmarks, not yours. I encourage you to run on your (production equivalent) environments.
Benchmarking Environment
- CentOS 6.6 64bit (VM; VirtualBox with Vagrant Synced folder)
- PHP 5.5.30 (Remi RPM)
- Zend OPcache v7.0.4-dev
- MySQL 5.1
- Apache 2.2
- PHP 5.5.30 (Remi RPM)
(2015-12-10), orm, time (ms), memory (KB), -------------------, --------:, -----------:, doctrine, 109.81, 1310.06, propel2, 51.32, 1144.60, eloquent, 34.46, 673.80, yii1, 17.84, 808.48, fuel, 11.74, 389.72, yii2, 9.09, 835.82, phalcon, 7.25, 150.05, If you are interested in other resutls, see OTHER_RESULTS.md.
How to Benchmark
(1) Install this repository and install composer packages.
$ git clone https://github.com/kenjis/php-orm-benchmark.git
$ cd php-orm-benchmark
$ composer install
You may skip Phalcon by running composer install --ignore-platform-reqs
, if you do not have it installed.
(2) Set public
folder as your web document root. If you access http://localhost/, you can see the results graph.
(3) Configure fuel/app/config/development/db.php
.
(4) Create database php_dev
and import schema schema/php_dev.sql
.
$ php oil r setup:mysql
(5) Generate config file for Propel.
$ php oil r setup:propel2
(6) Run benchmarks.
$ php oil r benchmark
See http://localhost/.
You can get markdown table for the results.
$ php oil r show:result_table
References
- Doctrine ORM
- Eloquent ORM
- FuelPHP 1.x Orm
- Phalcon ORM
- Propel 2
- Yii 1 ActiveRecord
- Yii 2 ActiveRecord