php 所有主流框架效能對比(yii、yaf、ci等php框架)
案例
本次測試輸出簡單的hello word,簡單MVC邏輯,(Router -> Controller -> Viewer),沒有資料庫連線,沒有任何邏輯.
硬體平臺
CPU: Intel Core i5 750 (2.67GHz x4)
RAM: 4GB
軟體環境
Debian 6.0.4 x86_64 (2.6.32-41)
apache 2.2.16 (mpm-prefork,mod-php5)
php 5.3.10
php-apc 3.1.9 (Optimization for include/require)
Copy all projects to /dev/shm/* (Optimization for files read/write)
PHP框架列表
* cakephp: CakePHP
Site: http://cakephp.org
Ver: 2.0.4
* laravel: Laravel, A PHP Framework For Web Artisans
Site: http://laravel.com
Ver: 2.0.2
* yaf: Yet Another Framework in PHP Extension
Site: http://code.google.com/p/yafphp
Ver: 2.1.3-beta (yaf.cache_config=1)
* FuelPHP: Simple, Flexible, Community driven Web Framework
Site:
Ver: 1.1
# XHProf: A Hierarchical Profiler for PHP
Site: http://pecl.php.net/xhprof
Ver: 0.9.2
1. Apache Benchmark
Requests pre second (-c 100 -n 30000), the bigger is better
請求/秒(-c 200 -n 50000), 數值越大越好
2. 系統負載
壓力測試一分鐘內完成的負載圖
越小越好(-c 100 -n 30000)
3. 記憶體使用率
測試hello word佔用的記憶體,越小越好.
4. 響應時間
頁面的響應時間.單位微妙
5. 呼叫方法的數量(Facebook XHProf)
單個hello word頁面呼叫了多少方法,zend5620個方法,是不是太臃腫了。
詳細的函式呼叫圖
Symfony2 | Zend Framework 1.11.1 | ||
Zend Framework 2.0.0-beta1 | CakePHP 2.0.4 | ||
CodeIgniter 2.1.0 | Yii Framework 1.1.8 | ||
Slim 1.5 | Laravel 2.0.2 | ||
MicroMVC 4.0.0 | Yaf 2.1.3-beta | ||
FuelPHP 1.1 | ColaPHP 1.2 |
6. 檔案數量
開啟hellow word用到included or required in 檔案的數量.越小越好,zend很多,yii19個,yaf才4個,不快才怪。