刚和朋友的聊天过程中,认识到yaf,yaf是远程c写的框架,整个php框架写成了扩展。php启动的时候便加载到内存,速度性能远比php写的框架强很多,但是使用ide相对麻烦一些,性能绝对赞。翻译了一片国外的框架性能对比文章.
案例
本次测试输出简单的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框架列表
* zf: Zend Framework Site: http://framework.zend.com Ver: 1.11.11
* zf2: Zend Framework Site: http://framework.zend.com Site: https://github.com/zendframework/ZendSkeletonApplication Ver: 2.0.0-beta1
* symfony: symfony Site: http://www.symfony-project.org Ver: 2.0.0
* cakephp: CakePHP Site: http://cakephp.org Ver: 2.0.4
* This: CodeIgniter site: http://codeigniter.com Ver: 2.1.0
* Yii: Yii Framework By: http://www.yiiframework.com Ver: 1.1.8
* micromvc4: MicroMVC Site:http://www.micromvc.com Ver: 4.0.0
* laravel: Laravel, A PHP Framework For Web Artisans Site: http://laravel.com Ver: 2.0.2
* slim: Slim Framework Site: http://www.slimframework.com Ver: 1.5.0
* 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:http://fuelphp.com/ Ver: 1.1
* ColaPHP: Site: http://code.google.com/p/colaphp/ Ver: 1.2-ga # XHProf: A Hierarchical Profiler for PHP Site:http://pecl.php.net/xhprof Ver: 0.9.2 # The source code of this testing: Source: https://github.com/eryx/php-framework-benchmark
1. Apache Benchmark Requests pre second (-c 100 -n 30000), the bigger is better
Request / sec (-c 200 -n 50000), the greater the value the better
2. The system load stress test load of FIG completed in one minute as small as possible (-c 100 -n 30000)
3. Memory usage test hello word memory occupied, the smaller the better.
4. Response Time Response time page. Unit subtle
Number (Facebook XHProf) 5. call the method of a single page calls hello word how much method, zend5620 a method that is not too bloated.
Details of the function call graph
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. The number of files open hellow word used included or required in the number of files. The smaller the better, zend lot, yii19 months, yaf only four, unhappy strange.