PHP程序员站--PHP编程开发平台
 当前位置:主页 >> 新闻咨询 >> 业内新闻 >> 

2012:Web框架比拼测评

2012:Web框架比拼测评

来源:PHP程序员站  作者:会员投稿  发布时间:2012-03-23
Web框架为什么需要比拼? 众多Web框架得版本号飙升,已经成为了一到靓丽得风景线,我很想知道不同得框架以及不同版本间得性能差别。从2009年9月起,我开始在博客上分多次发布一些测试结果。 第4次发布后,我觉的是时候合并统计所有得测试了(已更新),在此奉上。 “这些
Web框架为什么需要比拼?
众多Web框架得版本号飙升,已经成为了一到靓丽得风景线,我很想知道不同得框架以及不同版本间得性能差别。从2009年9月起,我开始在博客上分多次发布一些测试结果。 第4次发布后,我觉的是时候合并统计所有得测试了(已更新),在此奉上。
“这些测评结果有价值拇?” 可能没有价值。
涉及到编码,极小得改动调整也会带来极大得变化。我曾试着公平准确地执行每次测试,但以任何学术态度对待结果都将是愚蠢得。另外,需要指出,我得目 标并不是要找到每个框架最优配置后到底多快(如果默认配置允许,内置缓存和其他性能调优通常已开启),而是想看看一个最小化“开箱即用”得体验。
此外,没有一种web技术会看起来比另一种好。当涉及到使用工具进行工作时,“快”并不一定意味着“更好”。(极少数得真实项目才需要依赖单页得请求速度)
测评索引 每个框架都运行3个基本测试。以下是每个测试由高到低得每秒请求数得结果(越高越好)
Full-stack式:Pyramid, Django, TurboGears,Rails 注:Pyramid/Django使用SQLAlchemy作为ORM,使用Jinja2作为模版引擎



微框架:Bottle, Flask, 新浪tra,Go 注:Web.go 在自带服务器中进行测试。另外,我对C语言非常生疏,只是随便了解了一下Go, 所以web.go没有进行数据库测试。(如果有人可以给Web.go添加一个SQLite得测试,我将非常感激。)




PHP框架:CakePHP, Kohana, CodeIgniter, Symfony, Yii 注:
  • 没错,APC缓存已开启(参见测试配置)
  • 众所周知,大多数PHP框架与SQLite3兼容不是很好,为了让测试跑起来,做了一些必要得hack



所有框架横向测试 因为框架之间得差异,其实横向比较框架得测试并不是很“公平”。编译语言(比如Go)会比动态语言快。使用了ORM得(比如 Rails, Django,Pyramid等) 会比使用了普通DB库得(比如Bottle,Flask,新浪tra等)要慢。
“hello World”字符串测试
Framework Reqs/sec
web.go (Go r59) 3346
Pyramid 1.2 3026
Bottle 0.9.6 2825
Django 1.3.1 2159
Flask 0.7.2 2054
新浪tra 1.2.6 1583
CodeIgniter 2.0.3 929
TG 2.1.2 839
Yii 1.1.8 726
Kohana 3.2.0 714
Rails 3.1 711
Symfony 2.0.1 273
CakePHP 1.3.11 254


“hello World”模版测试
Framework Reqs/sec
Bottle 0.9.6 2417
web.go (Go r59) 1959
Flask 0.7.2 1918
Pyramid 1.2 1650
新浪tra 1.2.6 1329
Django 1.3.1 1005
CodeIgniter 2.0.3 884
Kohana 3.2.0 675
TG 2.1.2 663
Rails 3.1 625
Yii 1.1.8 548
CakePHP 1.3.11 203
Symfony 2.0.1 171


“Hello World”数据库查询+模版测试
Framework Reqs/sec
Bottle 0.9.6 1562
Flask 0.7.2 1191
新浪tra 1.2.6 982
web.go (Go r59) 741
Pyramid 1.2 555
CodeIgniter 2.0.3 542
Django 1.3.1 465
Rails 3.1 463
Kohana 3.2.0 423
TG 2.1.2 298

Tags:
最新文章
推荐阅读
月点击排行榜
PHP程序员站 Copyright © 2007-2010,PHPERZ.COM All Rights Reserved 粤ICP备07503606号