身边有朋友在用yaf框架,讨论的也声音也比较多,今天没事看鸟哥的博客,看到一篇现在PHP主流的几个框架性能对比,比较有意思,给大家分享一下!

Yaf是用PHP扩展的形式写的一个PHP框架,也就是以C语言的编写,性能上要比PHP代码写的框架要快一个数量级。在执行效率方面,这个框架很可能会是最高的,因为它的作者就是惠新宸

Case

测试 MVC 中的 Router -> Controller -> Viewer, 输出 "Hello World" 简单页面,测试 MVC 在理想环境、简单逻辑、框架空载下的性能指标。

3 项指标

1) 在 index.php 中使用 microtime() 和 memory_get_usage() 粗略取得执行时间,内存占用情况
2) 使用 Facebook XHProf 扩展取得详细的资源占用情况,代码执行的 function map
3) 并发测试

硬件环境:

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

软件环境:

Debian 6.0.2 x86_64 (2.6.32-5-amd64)

apache 2.2.16
mpm-prefork
mod-php5

php 5.3.6
php-apc 3.1.3p1 (全局统一开启APC支持)

测试的框架清单:

* zf: Zend Framework
Site: http://framework.zend.com
Ver: 1.11.7

* ci: CodeIgniter
Site: http://codeigniter.com/
Ver: 2.0.2

* yii: Yii Framework
Site: http://www.yiiframework.com/
Ver: 1.1.8

* yaf: Yet Another Framework in PHP Extension
Site: http://code.google.com/p/yafphp/
Ver: 2.0.1

* micromvc: MicroMVC
Site: http://www.micromvc.com/
Ver: 3.1.0

测试代码用例:

https://github.com/eryx/labs/tree/master/php-framework-benchmark

测试结果:
1. 粗测: 内存占用,响应时间
* zf: Zend Framework

* ci: CodeIgniter

* yii: Yii Framework

* yaf: Yet Another Framework in PHP Extension

* micromvc: MicroMVC

* all: 汇总对比
内存消耗

执行时间 (毫秒)

2. XHProf: 执行详情

* zf: Zend Framework
执行摘要:

执行详图:

* ci: CodeIgniter
执行摘要:

执行详图:

* yii: Yii Framework
执行摘要:

执行详图:

* yaf: Yet Another Framework in PHP Extension
执行摘要:

执行详图:

* micromvc: MicroMVC
执行摘要:

执行详图:

* all: 汇总对比
函数调用量

3. 并发测试

ab -c 100 -n 30000

ab -c 200 -n 50000

看完之后第一反应,yaf的运行传输速度都快赶上PHP源码了,感觉就像只是PHP换了一种方式运行,那这个框架里边的东西是否健全?因为还不太了解yaf,不敢评论太多!

PHP Framework MVC Benchmark 基准测试的更多相关文章

  1. Getting Started with Zend Framework MVC Applications

    Getting Started with Zend Framework MVC Applications This tutorial is intended to give an introducti ...

  2. [转]Upgrading to Async with Entity Framework, MVC, OData AsyncEntitySetController, Kendo UI, Glimpse & Generic Unit of Work Repository Framework v2.0

    本文转自:http://www.tuicool.com/articles/BBVr6z Thanks to everyone for allowing us to give back to the . ...

  3. Zend Framework MVC的结构

    The Zend Framework MVC Architecture 一.概述: In this chapter, we will cover the following topics:1. Zen ...

  4. mysql benchmark基准测试

    git项目地址: https://github.com/akopytov/sysbench 利用sysbench很容易对mysql做性能基准测试(当然这个工具很强大,除了测试主流数据库性能,还能测试其 ...

  5. 使用JMH做Benchmark基准测试

    目录 BenchMark介绍 开始前的步骤 例子 代码 报告 注解介绍 @BenchmarkMode @OutputTimeUnit @Iteration @WarmUp @State @Fork @ ...

  6. Entity Framework mvc Code First data migration

    1. Code First 可以先在代码里写好数据模型,自动生成DB.下一次启动的时候会根据__MigrationHistory判断 数据库是否和模型一致. 详情参考:http://blogs.msd ...

  7. [Entity Framework+MVC复习总结1]-WebForm与Asp.Net MVC

    一.Web开发方式的比较 二.web Form开发模型 WebForm开发优点: 1.支持事件模型开发.得益于丰富的服务器端组件,webfrom开发可以迅速的搭建web应用 2.使用方便,入门容易 3 ...

  8. .net framework MVC 下 Hangfire使用,时区,权限

    安装 NuGet 上有几个可用的Hangfire 的软件包.如果在ASP.NET应用程序中安装HangFire,并使用Sql Server作为存储器,那么请在Package Manager Conso ...

  9. 【转】Code Your Own PHP MVC Framework in 1 Hour

      原文: https://www.codeproject.com/Articles/1080626/Code-Your-Own-PHP-MVC-Framework-in-Hour --------- ...

随机推荐

  1. 【SPOJ687&POJ3693】Maximum repetition substring(后缀数组)

    题意: n<=1e5 思路: From http://hzwer.com/6152.html 往后匹配多远 r 用ST表求lcp即可...往前 l 就把串反过来再做一下.. 但是有可能求出来的最 ...

  2. 快速掌握RabbitMQ(二)——四种Exchange介绍及代码演示

    在上一篇的最后,编写了一个C#驱动RabbitMQ的简单栗子,了解了C#驱动RabbitMQ的基本用法.本章介绍RabbitMQ的四种Exchange及各种Exchange的使用场景. 1 direc ...

  3. PC下ubuntu查找PC串口并加入用户组

    1. 查看ttyS0隶属的组:ls -l /dev/ttyS0  //发现隶属于dialout组 输出: crw-rw---- 1 root dialout 4, 64  9月  9 08:23 /d ...

  4. 注解@RequestMapping value 用法

    本文引自:https://blog.csdn.net/qq_33811662/article/details/80864784 RequestMapping是一个用来处理请求地址映射的注解,可用于类. ...

  5. 【Java TCP/IP Socket】UDP Socket(含代码)

    UDP的Java支持 UDP协议提供的服务不同于TCP协议的端到端服务,它是面向非连接的,属不可靠协议,UDP套接字在使用前不需要进行连接.实际上,UDP协议只实现了两个功能: 1)在IP协议的基础上 ...

  6. 【Hibernate】(2)Hibernate配置与session、transaction

    1. Hibernate经常使用配置 使用hibernate.default_schema属性能够让全部生成的表都带一个指定的前缀. 2. session简单介绍 不建议直接使用jdbc的connec ...

  7. [Tools] Convert SVG to a PDF in Node with PDFKit and SVG.js

    Given a epxress application and an svg template, we want to draw some text, date onto it and convert ...

  8. electron 开发拆坑总结

    electron 总结 前言 有一个web项目需要用客户端来包装一下 项目的主要业务都在服务器上 所以项目的大多数功能都用url 地址来访问: 客户端登陆界面在本地 打包客户端的本地登陆界面 做为登陆 ...

  9. 【转载】Open Live Writer 安装

    Open Live Writer来源 Windows Live Writer在2012年就停止了更新,Open Live Writer是由Windows Live WriterWriter更名而来,是 ...

  10. 【手势交互】4. Kinect for XBox

    "You are the Controller",Kinect for Xbox的广告词.明白说明了Kinect体感的交互方式.作为一款集成了诸多先进视觉技术的自然交互设备,Kin ...