The Test
We have each programmer picked a popular PHP framework, and the task is to setup the framework and create MVC for the benchmark, which involves,- 1000 database insertion
- 1000 database update
- query 1000 records (all fields), and display in a list
- each record size is about 2kb
- Pentium 4, 4.3GHz
- 2GB RAM
- Windows XP, SP3
- XAMPP 1.7.0 (patched to work with PDO)
- APC enabled (Zend Optimizer disabled)
- All programs turned off, including Anti-Virus and Firewall
The Result
Framework | Database Engine | Avg. Response Time | Avg. Memory Usage |
---|---|---|---|
Pure PHP | mysqli | 5.28s
|
0.14MB
|
oModel* | adodb mysql | 7.13s
|
6.88MB
|
Yii Framework (yiilite) |
pdo_mysql | 7.41s
|
8.38MB
|
Yii Framework | pdo_mysql | 7.7s
|
9.44MB
|
Kohana | mysqli | 7.68s
|
11.22MB#
|
Zend Framework | pdo_mysql | 8.37s
|
7.99MB
|
Zend Framework | mysqli | 11.28s
|
7.88MB
|
Akelos | mysqli | 12.98s
|
10.93MB
|
# With <benchmark> parameter turned off in the database config file, it only uses 1.5MB memory, and takes about 7.8s. Thanks Jeremy Bush for the advice. (updated 24/07/2009)
The Verdicts
Framework | Pro. | Con. |
---|---|---|
oModel | Fastest framework, light file structure, highly flexible, real short learning curve | Not as comprehensive, not well documented, no community support, need high skill set to work on for large-scale project |
Yii Framework | Fast, comprehensive, simple and secure file structure, strictly php5 OO, well documented, code generation | Farely new, still building community awareness |
Kohana | Flexibility, Easy start | Big memory footprint, DB feature incomplete |
Zend Framework | Great library set, flexible, best community support | Long learning curve, code generation problem* |
Akelos | Great RoR port, database migration | Slow, php4 |
Just to let you know, one of the developers in Yii only lives like < 2km from your office.
Thanks Wei, it would be interesting to know the local developer and possibly have a chat with.
It would be interesting to also test the Symfony framework http://www.symfony-project.org. I have been using it for a while now but am curious about Yii, which claims much higher performance.
Hi Gerd,
Thanks for your comment, to my knowledge of Symfony (pre 1.0) it would be lot slower than Yii for sure in terms of output performance. However to evaluate a framework you may want to consider other aspects as well, ie. available tool sets, community activity/support, speed of delivery, deployment, code maintenance, etc. I’d recommend you to try out Yii framework, to see the differences yourself. I believe Yii would certainly please you in quite few things.
thx for your review about PHP framework, before read this, i’m confuse which framework that i must use.
Does anyone ever use doophp? Just curious about its benchmark http://doophp.com/benchmark . Would anyone verify this? thanks
Hi Kee,
Thanks for your comment, we haven’t tried doophp before, however we strongly believe the real world performance of doophp would not out perform the others by that much. As you may notice in our test, pure php mysql connection is only 40% faster than the Yii Framework. Unless cache mechanism is involved, we would be amazed to find any database abstraction would actually be faster than pure php mysql connection.
It may be 5 or more times faster in producing the ‘Hello World’ page, which only hit the frameworks view/action controller. We believe you need to take other components into consideration while doing a real test-case. In most the real world projects caching would be the final determinate factor of ‘performance’ (at a users point of view), that really matters most. In other words, if you know how to tweak caching on all database, page, assets, media levels, any framework should really be the same, in terms of serving pages (cached).
Therefore, what really matters to a framework would not so much in performance, but really lies on the feature set and support.
Cheers!
It would be interesting to see the source code of these benchmarks, and how you did the database code. That memory number seems awfully high.
Hi Jeremy, just emailed you the benchmark code, please review and post back your valuable thoughts.
Where is CakePHP and CodeIgniter ?