停止更新,敏捷测试及TestOps解决体系,关注订阅号TestOps

2012:Web框架比拼测评 ZT

上一篇 / 下一篇  2012-03-23 19:08:27 / 个人分类:性能测试

这个也算个不错的性能测试报告,不过个人觉得方案上没写清楚,完全不知道是用什么策略来评估的。

9l dY&?&S v1W`0

51Testing软件测试网*M}/kz cvH)ZG^
51Testing软件测试网#JS9EXZH

Web框架为什么需要比拼?
众多Web框架的版本号飙升,已经成为了一到靓丽的风景线,我很想知道不同的框架以及不同版本间的性能差别。从2009年9月起,我开始在博客上分多次发布一些测试结果。 第4次发布后,我觉得是时候合并统计所有的测试了(已更新),在此奉上。

F/|7XQd$WB6k7t0

“这些测评结果有价值么?”51Testing软件测试网(}p+m2D6xQ

可能没有价值。

_8Uh2lP['J}0

涉及到编码,极小的改动调整也会带来极大的变化。我曾试着公平准确地执行每次测试,但以任何学术态度对待结果都将是愚蠢的。另外,需要指出,我的目 标并不是要找到每个框架最优配置后到底多快(如果默认配置允许,内置缓存和其他性能调优通常已开启),而是想看看一个最小化“开箱即用”的体验。51Testing软件测试网7Q_j4M-z.y0]t9P

此外,没有一种web技术会看起来比另一种好。当涉及到使用工具进行工作时,“快”并不一定意味着“更好”。(极少数的真实项目才需要依赖单页的请求速度)

\zuZ0Eea;u3j-` W0测评索引

每个框架都运行3个基本测试。以下是每个测试由高到低的每秒请求数的结果(越高越好)

l#?J;GI q0Full-stack式:Pyramid, Django, TurboGears,Rails

注:Pyramid/Django使用SQLAlchemy作为ORM,使用Jinja2作为模版引擎

#^DXOC(L-x0

2t;m5Q R/H&|t0

51Testing软件测试网CVv t/SP

J"?G#am)O|0微框架:Bottle, Flask, Sinatra,Go

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

P1b;ZzZ+b0

51Testing软件测试网nFSEm

51Testing软件测试网 [E7c/}R:?0[

0\1i#i p(u.S9v0PHP框架:CakePHP, Kohana, CodeIgniter, Symfony, Yii

注:

l*l` `YeF5h0
  • 没错,APC缓存已开启(参见测试配置)
  • 众所周知,很多PHP框架与SQLite3兼容不是很好,为了让测试跑起来,做了一些必要的hack

51Testing软件测试网8k$v xP e0S

|} Uff2hG,|8c0

51Testing软件测试网C(Y]+|8\!L7l%H3x"M

所有框架横向测试

因为框架之间的差异,其实横向比较框架的测试并不是很“公平”。编译语言(比如Go)会比动态语言快。使用了ORM的(比如 Rails, Django,Pyramid等) 会比使用了普通DB库的(比如Bottle,Flask,Sinatra等)要慢。

+~e;z"X+T:A0“hello World”字符串测试
FrameworkReqs/sec
web.go (Go r59)3346
Pyramid 1.23026
Bottle 0.9.62825
Django 1.3.12159
Flask 0.7.22054
Sinatra 1.2.61583
CodeIgniter 2.0.3929
TG 2.1.2839
Yii 1.1.8726
Kohana 3.2.0714
Rails 3.1711
Symfony 2.0.1273
CakePHP 1.3.11254

51Testing软件测试网2B }3FO"VD


“hello World”模版测试
FrameworkReqs/sec
Bottle 0.9.62417
web.go (Go r59)1959
Flask 0.7.21918
Pyramid 1.21650
Sinatra 1.2.61329
Django 1.3.11005
CodeIgniter 2.0.3884
Kohana 3.2.0675
TG 2.1.2663
Rails 3.1625
Yii 1.1.8548
CakePHP 1.3.11203
Symfony 2.0.1171

51Testing软件测试网6E2wT"pE.dI3b


“Hello World”数据库查询+模版测试
FrameworkReqs/sec
Bottle 0.9.61562
Flask 0.7.21191
Sinatra 1.2.6982
web.go (Go r59)741
Pyramid 1.2555
CodeIgniter 2.0.3542
Django 1.3.1465
Rails 3.1463
Kohana 3.2.0423
TG 2.1.2298


TAG:

引用 删除 leon8023   /   2012-06-18 11:09:55
怎么图片都是红叉叉呀!
mimmy小窝 引用 删除 mimmy   /   2012-03-23 23:51:41
看不到图片
 

评分:0

我来说两句

Open Toolbar