Cycle 2.16.0
cycle/database · mean 846 ms · 150 samples
- postgresql 846 ms
Mean time per scenario run with warmup runs excluded, sorted by runtime. Each framework does different work, so read these next to the features you need from an ORM.
cycle/database · mean 846 ms · 150 samples
phpfui/orm · mean 957 ms · 150 samples
doctrine/orm · mean 993 ms · 150 samples
propel/propel · mean 1,260 ms · 150 samples
atlas/pdo · mean 1,287 ms · 150 samples
php-patterns/activerecord · mean 1,433 ms · 150 samples
phpfui/orm · mean 1,503 ms · 150 samples
yiisoft/yii2 · mean 1,789 ms · 150 samples
divergence/divergence · mean 1,813 ms · 150 samples
cakephp/cakephp · mean 1,887 ms · 150 samples
cakephp/cakephp · mean 1,906 ms · 150 samples
illuminate/database · mean 2,390 ms · 150 samples
gabordemooij/redbean · mean 3,497 ms · 150 samples
Mean across every framework measured on each engine.
Mean across every framework and engine for each row shape.
Every framework runs the same scenarios. The row shape and the operation mix decide where each one spends its time.
Shows framework overhead with very little field-mapping noise, so identity-map, query builder, and per-record object cost dominate.
Wide records amplify hydration, casting, dirty-checking, and serialization overhead. Frameworks with expensive attribute normalization usually spread out here.
A near-floor for typed persistence. If an ORM is still slow here, the cost is usually framework machinery rather than payload complexity.
Decimal and floating-point mapping can trigger extra normalization work, especially on update verification and dirty-state comparison.
Fixed-length text stresses text field assignment without the variability of large blobs, so column-count and hydration strategy matter more than payload churn.
This is the closest to a real CRUD app payload. Variable strings and notes fields widen the gap between lightweight row mappers and heavier active-record layers.
Imported uploads from signed runners. Open a run for its machine and per-engine detail.
| Run | Host | Status | Samples | Runtime | Started |
|---|---|---|---|---|---|
| 20260928011232-b9eaed5b | kaijuPHP 8.5.11 | complete | 7,488of 8,320 runs | 2h 29m 1savg 1,194 ms | |
| 20260831062427-083dfb94 | eimuPHP 8.5.3 | complete | 144of 160 runs | 12.384savg 86.0 ms | |
| 20260329203643-74505162 | eimuPHP 8.5.3 | complete | 312of 312 runs | 39.501savg 127 ms |
| ID | Status | Runner | Runtime | File |
|---|---|---|---|---|
| #3 | processed | kaiju | 2h 29m 1savg 1,194 ms | results-20260928011232-b9eaed5b-default-20260928-011232.csv received |
| #2 | processed | eimu | 12.384savg 86.0 ms | results-20260831062427-083dfb94-v3-3-0-staged-sqlite-memory-20260831-062427.csv received |
| #1 | processed | runner-20260329222123 | 39.501savg 127 ms | results-20260329203643-74505162-default-20260329-203643.csv received |