PHP Framework MVC Benchmark 基准测试
身边有朋友在用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 基准测试的更多相关文章
- Getting Started with Zend Framework MVC Applications
Getting Started with Zend Framework MVC Applications This tutorial is intended to give an introducti ...
- [转]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 . ...
- Zend Framework MVC的结构
The Zend Framework MVC Architecture 一.概述: In this chapter, we will cover the following topics:1. Zen ...
- mysql benchmark基准测试
git项目地址: https://github.com/akopytov/sysbench 利用sysbench很容易对mysql做性能基准测试(当然这个工具很强大,除了测试主流数据库性能,还能测试其 ...
- 使用JMH做Benchmark基准测试
目录 BenchMark介绍 开始前的步骤 例子 代码 报告 注解介绍 @BenchmarkMode @OutputTimeUnit @Iteration @WarmUp @State @Fork @ ...
- Entity Framework mvc Code First data migration
1. Code First 可以先在代码里写好数据模型,自动生成DB.下一次启动的时候会根据__MigrationHistory判断 数据库是否和模型一致. 详情参考:http://blogs.msd ...
- [Entity Framework+MVC复习总结1]-WebForm与Asp.Net MVC
一.Web开发方式的比较 二.web Form开发模型 WebForm开发优点: 1.支持事件模型开发.得益于丰富的服务器端组件,webfrom开发可以迅速的搭建web应用 2.使用方便,入门容易 3 ...
- .net framework MVC 下 Hangfire使用,时区,权限
安装 NuGet 上有几个可用的Hangfire 的软件包.如果在ASP.NET应用程序中安装HangFire,并使用Sql Server作为存储器,那么请在Package Manager Conso ...
- 【转】Code Your Own PHP MVC Framework in 1 Hour
原文: https://www.codeproject.com/Articles/1080626/Code-Your-Own-PHP-MVC-Framework-in-Hour --------- ...
随机推荐
- Lucene 6.5.0 入门Demo(2)
参考文档:http://lucene.apache.org/core/6_5_0/core/overview-summary.html#overview.description 对于path路径不是很 ...
- windows安装SUSE Linux Enterprise Server 12
一:打开“开发人员模式” 点击开始菜单按钮,选择“设置” 在设置中选择“更新和安全” 在菜单中选择“针对开发人员”,在三个选项中,选中“开发人员模式” 在弹出的警告框中点击“是” 这样开发人员模式就打 ...
- idea抛异常方式
选中需要抛异常的行,按alt+enter或者ctrl+alt+t,然后上下键选择自己抛异常的方式即可,如下图:
- Java 读写文件大全
原文:http://www.open-open.com/code/view/1423281836529 java中多种方式读文件 一.多种方式读文件内容. 1.按字节读取文件内容 2.按字符读取文件内 ...
- Maven学习在Elipse中发布一个Maven项目到Tomcat
原文:http://www.cnblogs.com/quanyongan/archive/2013/04/26/3044618.html 对于maven初学者的我,经常遇到一个问题就是,maven项目 ...
- 深入GCD(一): 基本概念和Dispatch Queue
什么是GCD?Grand Central Dispatch或者GCD,是一套低层API,提供了一种新的方法来进行并发程序编写.从基本功能上讲,GCD有点像NSOperationQueue,他们都允许程 ...
- UP Board USB无线网卡选购指南
前言 原创文章,转载引用务必注明链接,水平有限,欢迎指正. 本文环境:ubilinux 3.0 kernel 4.4.0 本文使用Markdown写成,为获得更好的阅读体验和正常的图片.链接,请访问我 ...
- [iOS]APP代码实践:建立一个辅助的APP类,降低对AppDelegate的改动
郝萌主倾心贡献.尊重作者的劳动成果,请勿转载. [UIApplication sharedApplication].delegate 可是时间长了还是认为这样不太好,AppDelegate本身有其自己 ...
- 面向对象 委托变量和this的使用
委托方法: this的使用:
- 【转载】一分钟了解两阶段提交2PC(运营MM也懂了)
上一期分享了"一分钟了解mongoDB"[回复"mongo"阅读],本期将分享分布式事务的一种实现方式2PC. 一.概念 二阶段提交2PC(Two phase ...