1
yyfearth 2013-05-04 03:02:24 +08:00
我觉得主要2个原因,一个是语言,一个是重量
相同语言Django比Bottle Flask慢,Rails比Sinatra慢,是因为Django和Rails是full web stack,比较重,而Bottle Flask Sinatra 是lightweight framework比较轻。 另外不同语言,一般都是编译或者JIT的语言比脚本语言快,尤其是这种跑分的时候尤其明显。大家都知道Ruby很慢,Python也不快(相比Java)。 除此之外我觉得NIO非阻塞也会有比较大的影响,只是我不知道这个测试里面有没有包括进来。一般来说非阻塞的吞吐量会大很多。 |
2
dcoder OP 看来node.js是动态语言框架里面的跑分王
|
3
lfhong 2013-05-04 03:26:39 +08:00
node.js跑分确实牛,我做过一个简单测试,杠杠的。
|
4
lfhong 2013-05-04 04:25:35 +08:00
看看ORM对性能的影响:
Framework RAW FULL ORM ------------------------------------------------------------------------------------- PHP 29.7% 5.9% ------------------------------------------------------------------------------------- bottle 30.9% 12.2% ------------------------------------------------------------------------------------- nodejs 46.9% 33.2% ------------------------------------------------------------------------------------- flask 19.2% 9.8% |
5
metaclass 2013-05-04 04:37:18 +08:00
其实有很多没啥功能的库也号称框架。最看不惯的就是micro-framework的说法,你又不是麻雀,五脏都不全还号称framework
|
6
hooluupog 2013-05-04 09:18:01 +08:00
57个吧。。。
|
7
JackyHua 2013-05-04 09:45:22 +08:00
看好Nodejs
|
8
keakon 2013-05-04 10:59:15 +08:00
你们难道没看到 Lua 的 openresty 么…
另外,前几位的都是多线程的,Tornado 不多开几个进程么? |
9
chilaoqi 2013-05-04 11:08:03 +08:00
go语言很 imbalance的样子
|
10
wuxqing 2013-05-04 22:02:33 +08:00
Django和ROR这些框架做的事情多,自然就慢了
我觉得还应该把bjoern, meinheld也放进去对比下 我测试bjoern, meinheld,还是很快的 http://www.360ito.com/article/26.html |
11
nkliwenjian 2013-05-04 23:19:03 +08:00
看了一下场景的设计。这样的设计其实远远的脱离了实际的使用,所以产生的结果就很让人怀疑了。真实应用最常见的场景应该是有很多的跨表查询在里面的,而且关键业务的查询也不可能那么简单。在他的设计里面数据库消耗的时间基本上都是可以忽略不计了,单纯考虑架构的性能,当然得出这个结果了。但是实际应用中数据库消耗的时间是不能忽略的。
举个例子。第一个图表,最高的go一秒钟能处理10000个请求,等于是0.1毫秒一个请求。然后flask只能处理100个请求,等于是10毫秒一个请求。所以是1:100,但是如果那个数据库请求耗时增加到2毫秒的话,比例就是2.1:12了,如果增加到3毫秒的话就是3.1:13了。他的报表说白了也没错,只是说在现实中的差距远没有那么夸张就是了。 我觉得要测试的话至少要设计出类似电商网站的例子来,数据量要大到一定程度,然后至少两个场景。 1. 若干个查询条件,处理然后进行数据库查询,返回一个列表。输出应该是html,当然json也无差。 2. 查询某个商品,然后根据查询该商品相关的一系列表,然后返回结果。 |
12
Feobe 2013-05-05 21:19:14 +08:00
我去,好复杂的测试,什么都有
眼睛都看花了。。看不太懂,好多根本没见过的东西 求完整中文翻译啊 |
13
Livid MOD 这个测试至少可以让你知道,一个开发框架在进行一些最基本的事情的时候的 overhead。每一个基础操作的的 overhead 在大型项目中积累下来可能就是不小的性能损失。
|
14
canesten 2014-06-07 15:42:48 +08:00
techempower著名月经贴
只关注textplain的性能 也就这个对比比较纯粹 其他夹杂数据库访问和JSON序列化的基准测试完全没有可比性 用的数据库驱动和JSON序列化的库都不一样 所以这一部分的开销也完全不一样 造成了大量的偏差 所以根本无法从直观意义上看出一个框架的速度 |
15
lang1pal 2014-06-07 20:34:46 +08:00 via iPhone
在机器性能越来越优异的这种其实真的不重要了
|