身边有朋友在用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,不敢评论太多!

最新文章

  1. 如何在MySql中记录SQL日志记录
  2. TCP IP详解(转)
  3. Alice and Bob(不断补充)
  4. WiFi与WLAN的区别
  5. crontab经验
  6. Linux下,命令 wget 的使用
  7. Mac 下ll命令 command not found
  8. git命令与github使用
  9. vb.net連接SQL数据库
  10. redis学习-散列表常用命令(hash)
  11. python3+django2 开发易语言网络验证(下)
  12. 使用 IntraWeb (35) - TIWJQueryWidget
  13. mysql、oracle 中按照拼音首字母排序
  14. http协议(一)一些基础知识
  15. 【python】字符串函数
  16. C#.NET常见问题(FAQ)-如何批量增加或取消注释
  17. Linux系统下Shell命令行快捷键实用技巧
  18. Day10 - Python异步IO、Pymysql、paramiko、
  19. UIButton+Block
  20. django--admin模型层

热门文章

  1. jsp、Html页面注释的种类
  2. 真的了解CDN服务吗?
  3. ROS之:log文件
  4. raspberry pi系统安装
  5. java实现简单的算法
  6. spark hbase
  7. 多个Nginx如何实现集群(没具体方案,只是初步探究)
  8. java消息队列怎么用
  9. android 程序退出的对话框
  10. 我的c++server记录----非堵塞下的socket读取操作