Press "Enter" to skip to content

Yaf 2.1性能测试(Yaf 2.1 Benchmark)

Thanks to Ruilog agian for his work of second benchmark of Yaf 2.1.
Yaf 2.1 (github, manual) did a lot of work to improve performance and reduce memory usage, so let's take a look at the result(Yaf 2.1重写了很多逻辑来提升性能, 并且降低内存使用率, 改进结果见测试对比):
First of all, I have to say, I am not saying the fastest is the best. every framework list blew is outstanding, and has particular situation to deploy. (首先, 我要申明, 不一定最快的就是最好的, 下面的每一个框架都是优秀的框架, 都有它们适用的场景)

Test Simple "Hello World" page output, Simple MVC logic(Router -> Controller -> Viewer), No Database Connections, No complex logic. Test scripts can be found here.

Hardware platform

  • CPU: Intel Core i5 750 (2.67GHz x4)
  • RAM: 4GB

Software Environment

  • Debian 6.0.3 x86_64 (2.6.32-39)
  • apache 2.2.16 (mpm-prefork,mod-php5)
  • php 5.3.8
  • php-apc 3.1.9 (Optimization for include/require)
  • Copy all projects to /dev/shm/* (Optimization for files read/write)

1. Apache Benchmark

Requests pre second (-c 100 -n 30000), the bigger is better

ab -c100 -n30000

Requests pre second (-c 200 -n 50000), the bigger is better
ab -c200 -n50000

2. System LoadAvg

System LoadAvg in 1 Minute when Apache Benchmark Complete, the smaller is better (-c 100 -n 30000)

System loadavg

3. Memory usage

How many memory usage in one "hello world" page. the smaller is better.

Memory usage

4. Response time

The time of page request to response.

Response time

5.Number of function calls (Facebook XHProf)

The number of functions calls in one "hello world" page.

Number of function calls

6. Number of included files

The number of files included or required in one "hello world" page. the fewer is better.

Number of included files

  * v20111201 @2011-12-01
    - release
  * v20111201-2 @2011-12-05
    - bugfix: Fix a stupid logic error in bench.php
    - bugfix: Symfony2, Change running mode from 'dev' to 'prod'

For more details, plz refer to:


  1. Angel Numerology
    Angel Numerology March 26, 2023

    I wish I coul be better at coding. Still, framework isn’t that bad.

  2. fnaf
    fnaf June 27, 2022

    Yaf 2.1 是 Benchmark 的更新版本,它包括对 HTTP/2 的支持。pokedle

  3. עיסוי
    עיסוי May 6, 2020

    massage in israel, many beautiful women!

  4. geometry dash
    geometry dash February 11, 2020

    The Yet Another Framework (Yaf) 扩展是一个用来开发web应用的php框架。

  5. Biao Go
    Biao Go July 10, 2019

    I want try the best yaf framework!

  6. David Chan
    David Chan March 22, 2019

    Very Good!

  7. FeiXu
    FeiXu December 18, 2018

    En nice

  8. jeni johnson
    jeni johnson July 12, 2018

    Cleaning the water reservoir
    Remove the water reservoir (6) from the body of the appliance beforehand (see a section “Usage rules”, “Preparing for work”). Turn the cover (8) of the water tank anti-clockwise. Drain and rinse the tank to remove dirt and limescale. In case of severe contamination, it is recommended to completely rinse the tank with an acetic acid solution (see the next paragraph “Cleaning the Evaporator Chamber and Transducer”). It is recommended to clean the water tank as often as possible, in order to maintain the purity and freshness of the water.
    Best Whole House Humidifiers

  9. signin signin May 19, 2018

    I cannot open my Hotmail emails if I use my MAC OSX with Safari at home. I think that this happens since Hotmail changed its configuration with Windows Live. In fact, if I use any PC, there is no problem at all. I need to resolve the problem because mainly I use MAC. Could you help me?

  10. Hotmail Login
    Hotmail Login March 20, 2018

    It is a good and amazing article. Your information is very useful for me and for others. thank you so much.

  11. marylewis21
    marylewis21 October 18, 2017


  12. real madrid logo
    real madrid logo June 5, 2017

    We assume the delays are down to Ubi polish; The Stick Of Truth has the capacity to be an incredible game a mix of oldschool

  13. alex
    alex March 7, 2017

    In file included from /home/alex/pirate/php/include/php/Zend/zend.h:841:0,
    from /home/alex/pirate/php/include/php/main/php.h:34,
    from /home/alex/pirate/nginx/html/yaflearned/yaf.c:21:
    /home/alex/pirate/php/include/php/Zend/zend_variables.h:51:15: note: expected ‘struct zval **’ but argument is of type ‘struct zval *’
    ZEND_API void _zval_ptr_dtor(zval **zval_ptr ZEND_FILE_LINE_DC);
    make: *** [yaf.lo] Error 1这是什么鬼,系统时centos 7

  14. Job search
    Job search February 13, 2017

    Awesome info, thanks for sharing.

  15. MonacoEscort
    MonacoEscort January 7, 2017

    Awesome info, thank you for shearing with us!

  16. Brandi
    Brandi May 4, 2016

    Thought it woldun’t to give it a shot. I was right.

  17. Helpful info. Lucky me I found your website
    by accident, and I’m shocked why this twist of fate did not
    came about in advance! I bookmarked it.

  18. Sherryl
    Sherryl May 22, 2015

    Wonderful blog you have here but I was curious if you knew of
    any discussion boards that cover the same topics talked about in this article?
    I’d really love to be a part of group where I can get suggestions from other
    knowledgeable individuals that share the same interest.
    If you have any recommendations, please let me know.
    web site (Sherryl)

  19. domain
    domain September 19, 2014

    When I originally commented I clicked the “Notify me when new comments are added” checkbox and
    now each time a comment is added I get three
    e-mails with the same comment. Is there any way you can remove people from that service?

  20. Johnny
    Johnny October 9, 2013


  21. Anonymous
    Anonymous September 24, 2013


  22. phporigin
    phporigin September 2, 2012


  23. webcgo
    webcgo July 3, 2012


  24. pakey
    pakey May 2, 2012


  25. Anonymous
    Anonymous March 16, 2012

    /usr/bin/phpize ./configure –with-php-config=/usr/bin/php-config
    Configuring for:
    PHP Api Version: 20090626
    Zend Module Api No: 20090626
    Zend Extension Api No: 220090626

  26. michael
    michael March 14, 2012


  27. laruence
    laruence February 8, 2012

    @cindy ming 暂时没有, 你可以使用不同的模板来实现, 或者使用自定义的视图引擎.
    不过, Yaf的视图引擎将会支持layout, 预计在2.2版本中

  28. cindy ming
    cindy ming February 8, 2012


  29. keda
    keda January 7, 2012

    不知道这个算不算是个问题,用于决定YAF application config 的 yaf.environ php value似乎只能通过添加到php 本身的ini文件里面来改变,而不能通过ini_set 或者是 修改local htaccess 文件来改变。
    如果在一台机器上需要有几个YAF项目以及不同的env值的话,单个值似乎是个问题。。并且改变需要root access,更是问题。。

  30. December 31, 2011

    Hi, laruence
    Configuring for:
    PHP Api Version: 20090626
    Zend Module Api No: 20090626
    Zend Extension Api No: 220090626 warning: prefer named diversions warning: prefer named diversions

  31. keda
    keda December 26, 2011

    gcc (Debian 4.4.5-8) 4.4.5 64bit系统。
    跟Adam Lu的error一样。。
    yaf.c:265: warning: initialization makes integer from pointer without a cast
    yaf.c:266: warning: initialization makes integer from pointer without a cast
    yaf.c:266: error: initializer element is not computable at load time
    yaf.c:266: error: (near initialization for ‘yaf_module_entry.module_number’)

  32. laruence
    laruence December 25, 2011 你可以打开php.ini中的display_startup_error看看有什么错误

  33. December 25, 2011

    mac os 中的php版本试5.3.8

  34. 雪候鸟
    雪候鸟 December 24, 2011 请问你的PHP的版本是?

  35. December 24, 2011

    Hi, Laruence.
    我在mac os x 10.7.2 上无法安装yaf-2.1.4。
    运行phpzie的时候提示: warning: prefer named diversions warning: prefer named diversions
    yaf.c:265: warning: initialization makes integer from pointer without a cast
    yaf.c:266: warning: initialization makes integer from pointer without a cast
    yaf.c:266: error: initializer element is not computable at load time
    yaf.c:266: error: (near initialization for ‘yaf_module_entry.module_number’)
    make: *** [yaf.lo] Error 1

  36. Anonymous
    Anonymous December 7, 2011

    @雪候鸟 非常感谢!我已经用ReflectionClass把Yaf扩展里的类都抽象出来了,写的很简单,不过可以用^ ^ 这下在zend里开发就方便多了,有需要的同学可以到下面的链接下载

  37. dvaknheo
    dvaknheo December 6, 2011

    再后来想想, 不行, 那样就就搞得系统零碎。

  38. 雪候鸟
    雪候鸟 December 6, 2011

    @thinklong 我这边没有, 不过你可以借助reflectclass自己生成一个 🙂

  39. Thinklong
    Thinklong December 6, 2011


  40. Eryx
    Eryx December 5, 2011

    @Wellming Symfony2 的配置确实存在问题,切换到 prod模式后并发大概是 400+, 介于 ZF 1.11 和 2.0 之间

  41. venkman
    venkman December 5, 2011

    如果虚拟主机上的php不支持或没有安装这个扩展, 那么推广还是有一定的

  42. Wellming
    Wellming December 3, 2011

    @Eryx 你看下app.php跟app_dev.php文件,
    $kernel = new AppKernel(‘prod’, false);
    $kernel = new AppKernel(‘dev’, true);

  43. kernel
    kernel December 3, 2011

    symfony2这么差啊,ps: yii的表现还不错啊,于是继续用yii

  44. xiatian
    xiatian December 3, 2011

    “E:\webServer\php\ext\php_yaf.dll”的激活上下文生成失败。 找不到从属程序集 Microsoft.VC90.DebugCRT,processorArchitecture=”x86″,publicKeyToken=”1fc8b3b9a1e18e3b”,type=”win32″,version=”9.0.21022.8″。 请使用 sxstrace.exe 进行详细诊断。

  45. helloyou
    helloyou December 3, 2011


  46. Eryx
    Eryx December 2, 2011

    解释下 app_dev.php 问题:
    刚开始的时候,常识用 app.php 引导,但失败(500 error); 而同时 app_dev.php 正常,为了消除 debug 对性能的影响,在 config_dev.yml 中做了如下修改 ([web_profiler] toolbar: false; intercept_redirects: false). 使其可以输出一个干净的 “hello world”.
    我想,虽然名称上叫做 “dev”, 但实际配置应该和 “app.php” 等同.
    Symfony 是一个历史悠久、成熟的商业框架,但我却是第一次使用,如果你有更优化的配置,期待您提交补丁 🙂

  47. KnightE
    KnightE December 2, 2011


  48. Wellming
    Wellming December 2, 2011


  49. 东爷
    东爷 December 2, 2011

  50. […] 后记(2011-12-02补充), Yaf 2.1做一些性能优化的升级, 基于Yaf 2.1的性能测试报告可以参见: Yaf 2.1性能测试(Yaf 2.1 Benchmark) […]

Comments are closed.