yii、yaf、ci等php框架性能对比

凉白开 PHP1759,28156字数 2001阅读6分40秒阅读模式

刚和朋友的聊天过程中,认识到yaf,yaf是远程c写的框架,整个php框架写成了扩展。php启动的时候便加载到内存,速度性能远比php写的框架强很多,但是使用ide相对麻烦一些,性能绝对赞。翻译了一片国外的框架性能对比文章.

案例文章源自运维生存时间-https://www.ttlsa.com/php/yii-yaf-ci-php/

本次测试输出简单的hello word,简单MVC逻辑,(Router -> Controller -> Viewer),没有数据库连接,没有任何逻辑.文章源自运维生存时间-https://www.ttlsa.com/php/yii-yaf-ci-php/

硬件平台
CPU: Intel Core i5 750 (2.67GHz x4)
RAM: 4GB文章源自运维生存时间-https://www.ttlsa.com/php/yii-yaf-ci-php/

软件环境文章源自运维生存时间-https://www.ttlsa.com/php/yii-yaf-ci-php/

Debian 6.0.4 x86_64 (2.6.32-41)文章源自运维生存时间-https://www.ttlsa.com/php/yii-yaf-ci-php/

apache 2.2.16 (mpm-prefork,mod-php5)文章源自运维生存时间-https://www.ttlsa.com/php/yii-yaf-ci-php/

php 5.3.10
php-apc 3.1.9 (Optimization for include/require)文章源自运维生存时间-https://www.ttlsa.com/php/yii-yaf-ci-php/

Copy all projects to /dev/shm/* (Optimization for files read/write)文章源自运维生存时间-https://www.ttlsa.com/php/yii-yaf-ci-php/

PHP框架列表文章源自运维生存时间-https://www.ttlsa.com/php/yii-yaf-ci-php/

* zf: Zend Framework
Site: http://framework.zend.com
Ver: 1.11.11文章源自运维生存时间-https://www.ttlsa.com/php/yii-yaf-ci-php/

* zf2: Zend Framework
Site: http://framework.zend.com
Site: https://github.com/zendframework/ZendSkeletonApplication
Ver: 2.0.0-beta1文章源自运维生存时间-https://www.ttlsa.com/php/yii-yaf-ci-php/

* symfony: symfony
Site: http://www.symfony-project.org
Ver: 2.0.0文章源自运维生存时间-https://www.ttlsa.com/php/yii-yaf-ci-php/

* cakephp: CakePHP
Site: http://cakephp.org
Ver: 2.0.4文章源自运维生存时间-https://www.ttlsa.com/php/yii-yaf-ci-php/

* ci: CodeIgniter
Site: http://codeigniter.com
Ver: 2.1.0文章源自运维生存时间-https://www.ttlsa.com/php/yii-yaf-ci-php/

* yii: Yii Framework
Site: http://www.yiiframework.com
Ver: 1.1.8文章源自运维生存时间-https://www.ttlsa.com/php/yii-yaf-ci-php/

* micromvc4: MicroMVC
Site: http://www.micromvc.com
Ver: 4.0.0文章源自运维生存时间-https://www.ttlsa.com/php/yii-yaf-ci-php/

* laravel: Laravel, A PHP Framework For Web Artisans
Site: http://laravel.com
Ver: 2.0.2文章源自运维生存时间-https://www.ttlsa.com/php/yii-yaf-ci-php/

* slim: Slim Framework
Site: http://www.slimframework.com
Ver: 1.5.0文章源自运维生存时间-https://www.ttlsa.com/php/yii-yaf-ci-php/

* yaf: Yet Another Framework in PHP Extension
Site: http://code.google.com/p/yafphp
Ver: 2.1.3-beta (yaf.cache_config=1)文章源自运维生存时间-https://www.ttlsa.com/php/yii-yaf-ci-php/

* FuelPHP: Simple, Flexible, Community driven Web Framework
Site: http://fuelphp.com/
Ver: 1.1文章源自运维生存时间-https://www.ttlsa.com/php/yii-yaf-ci-php/

* 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
ci

请求/秒(-c 200 -n 50000), 数值越大越好
ci

2. 系统负载
压力测试一分钟内完成的负载图
越小越好(-c 100 -n 30000)
ci

3. 内存使用率
测试hello word占用的内存,越小越好.
ci

4. 响应时间
页面的响应时间.单位微妙
ci

5. 调用方法的数量(Facebook XHProf)
单个hello word页面调用了多少方法,zend5620个方法,是不是太臃肿了。
ci

详细的函数调用图

Symfony2 ci Zend Framework 1.11.1 ci
Zend Framework 2.0.0-beta1 ci CakePHP 2.0.4 ci
CodeIgniter 2.1.0 ci Yii Framework 1.1.8 ci
Slim 1.5 ci Laravel 2.0.2 ci
MicroMVC 4.0.0 ci Yaf 2.1.3-beta ci
FuelPHP 1.1 ci ColaPHP 1.2 ci

6. 文件数量
打开hellow word用到included or required in 文件的数量.越小越好,zend很多,yii19个,yaf才4个,不快才怪。
ci

 

原文地址:http://www.ruilog.com/blog/view/b6f0e42cf705.html
转载请注明来自运维生存时间:https://www.ttlsa.com/html/3348.html

weinxin
我的微信
微信公众号
扫一扫关注运维生存时间公众号,获取最新技术文章~
凉白开
  • 本文由 发表于 09/10/2013 22:16:56
  • 转载请务必保留本文链接:https://www.ttlsa.com/php/yii-yaf-ci-php/
  • ci
  • php框架
  • php框架性能对比
  • yaf
  • yii
  • zend
评论  17  访客  16
    • 张三
      张三 0

      学习了,目前项目中使用的TP框架。

      • 匿名
        匿名 9

        dsgsxg三个个

        • 运维生存时间网友
          运维生存时间网友 9

          xcv发送

          • 匿名
            匿名 9

            xcv发送

            • 2012创业家
              2012创业家 9

              laravel5呢

                • 运维生存时间
                  运维生存时间 7

                  @ 2012创业家 laravel很好用

                    • 2012创业家
                      2012创业家 9

                      @ 运维生存时间 恩,最近在用laravel 5 ,感觉很优雅,但是一个首页就自动加载了太多文件,如果用作APP的API接口,会不反应很慢?

                        • 运维生存时间
                          运维生存时间 7

                          @ 2012创业家 php框架都有加载很多文件
                          1、如果你说的是js、css这些文件,那你就多虑了,应为接口是不需要这些文件。
                          2、如果请求量不大,完全可以胜任。如果很大,可以考虑用yaf

                    • 许毕峰
                      许毕峰 9

                      不错,学习了!

                      • sand
                        sand 9

                        没有sql相关测试,这个就没什么意义了

                          • loso
                            loso 0

                            @ sand 你说的太片面, 从输出hello work 就可以看出框架核心需要加载多少文件及执行的效率.

                          • zz
                            zz 9

                            学习了

                            • 路一起
                              路一起 9

                              见识了

                              • Dragon_龙
                                Dragon_龙 9

                                众多编程语言还是c扩展的牛啊 没有之一

                              评论已关闭!