b**g 发帖数: 335 | 1 http://www.csdn.net/article/2013-05-03/2815122
http://www.techempower.com/benchmarks/
应用性能直接影响到托管服务的成本,因此公司在开发应用时需要格
外注意应用所使用的Web框架,初创公司尤其如此。此外,糟糕的应用
性能也会影响到用户体验,甚至会因此受到相关搜索引擎的降级处罚
。在选择框架时,又有许多因素需要考量,但原始性能无疑是其中最
容易测评的。
不同的框架性能差异极大,即使你充分利用了硬件的性能,错误的框
架依然可能带来十倍的性能损耗,虽然不是每个人都会遇到如此极端
的情况,但在某些情况下确实如此,因此你有必要了解各框架之间的
性能差异。为此,TechEmpower对57个常见Web框架进行了4回合横向对
比,可供开发者参考。
当然,这里所说的“框架”只是广义范围的框架,包括平台、完整框
架、微框架等等。也就是说,能搭建Web应用的都可以算作“框架”。
其中,测试内容包括单请求数据库访问测试、多请求数据库访问测试
、Fortunes测试、JSON序列化测试;硬件平台包括(亚马逊)EC2
m1.large和专有硬件。由于没有Windows平台测试环境,因此以下框架
比较中不包括C#/.NET平台或者框架。
在对比中,我们看到onion、vertx、gemini、servlet、go都取得了优
异的成绩,但耳熟能祥的Django和Rails的表现却差强人意。具体4个
回合的对比请移步TechEmpower查看。 |
d*******r 发帖数: 3299 | 2 Django 和 ROR 都这么糟....!?
等待高手 comment |
g*****g 发帖数: 34805 | 3 看来node.js要真能火,vert.x会很有吸引力。 |
p*****2 发帖数: 21240 | 4
这两个都看过一下,一看就没啥兴趣。Node.js要强很多。
【在 d*******r 的大作中提到】 : Django 和 ROR 都这么糟....!? : 等待高手 comment
|
d*******r 发帖数: 3299 | 5 好像你喜欢的Node.js在里面成了动态语言performance最好的框架
【在 p*****2 的大作中提到】 : : 这两个都看过一下,一看就没啥兴趣。Node.js要强很多。
|
s********k 发帖数: 6180 | 6 这个根本不是语言的对比,而是编程方式的对比,event based的node.js, golang
goroutine之类的,肯定比multi threading的web framework好。同样是C,
Apache和nginx的performance也差别很大。不就是因为multi threading不如event
based吗
http://joeandmotorboat.com/2008/02/28/apache-vs-nginx-web-serve
说实话,django就不适合作为python的代表,拿twisted上去比较比较合适
【在 p*****2 的大作中提到】 : : 这两个都看过一下,一看就没啥兴趣。Node.js要强很多。
|
p*****2 发帖数: 21240 | 7
我是说对这两个框架不敢兴趣。
【在 s********k 的大作中提到】 : 这个根本不是语言的对比,而是编程方式的对比,event based的node.js, golang : goroutine之类的,肯定比multi threading的web framework好。同样是C, : Apache和nginx的performance也差别很大。不就是因为multi threading不如event : based吗 : http://joeandmotorboat.com/2008/02/28/apache-vs-nginx-web-serve : 说实话,django就不适合作为python的代表,拿twisted上去比较比较合适
|
p*****2 发帖数: 21240 | 8
主要归功Google的V8吧?
【在 d*******r 的大作中提到】 : 好像你喜欢的Node.js在里面成了动态语言performance最好的框架
|
y*******g 发帖数: 6599 | 9 主要是event
【在 p*****2 的大作中提到】 : : 主要归功Google的V8吧?
|
p*****2 发帖数: 21240 | 10
没有V8的话有event能快起来吗?
【在 y*******g 的大作中提到】 : 主要是event
|
|
|
y*******g 发帖数: 6599 | 11 我觉得换一个js engine不会差太多,node.js本来就不适合long cpu的,稍微长一点的
cpu task整个处理能力就下降很多了
【在 p*****2 的大作中提到】 : : 没有V8的话有event能快起来吗?
|
s********k 发帖数: 6180 | 12 有没有什么自动框架把multi threading的web server转换成coroutine这样event
based的?什么语言都行
【在 y*******g 的大作中提到】 : 我觉得换一个js engine不会差太多,node.js本来就不适合long cpu的,稍微长一点的 : cpu task整个处理能力就下降很多了
|
p*****2 发帖数: 21240 | 13
长一点的需要起process了。或者scale out出去。现在除了V8还有其他engine吗?貌似
作者就是看到V8才打起JS的主意来的。
【在 y*******g 的大作中提到】 : 我觉得换一个js engine不会差太多,node.js本来就不适合long cpu的,稍微长一点的 : cpu task整个处理能力就下降很多了
|
s********k 发帖数: 6180 | 14 怎么判断一个process会CPU bound?kernel做monitor?scale out出去具体会是什么办
法?
【在 p*****2 的大作中提到】 : : 长一点的需要起process了。或者scale out出去。现在除了V8还有其他engine吗?貌似 : 作者就是看到V8才打起JS的主意来的。
|
y*******g 发帖数: 6599 | 15 node的典型用法就是多少个cpu core就多少个node process, 所以如果一个block了,
context switch的cost就上去了
【在 p*****2 的大作中提到】 : : 长一点的需要起process了。或者scale out出去。现在除了V8还有其他engine吗?貌似 : 作者就是看到V8才打起JS的主意来的。
|
s********k 发帖数: 6180 | 16 node能控制每个process平均分配到每个core上吗?还是靠底层才行吧
【在 y*******g 的大作中提到】 : node的典型用法就是多少个cpu core就多少个node process, 所以如果一个block了, : context switch的cost就上去了
|
y*******g 发帖数: 6599 | 17 node不控制这个,需要多个instances
【在 s********k 的大作中提到】 : node能控制每个process平均分配到每个core上吗?还是靠底层才行吧
|
s********k 发帖数: 6180 | 18 多个instance会不会几个instance跑到一个core,然后另外一个core闲置?比如一个
event来了,callback、放在那个core上运行是OS底层调度的?还是node也参与
【在 y*******g 的大作中提到】 : node不控制这个,需要多个instances
|
y*******g 发帖数: 6599 | 19 linux taskset
【在 s********k 的大作中提到】 : 多个instance会不会几个instance跑到一个core,然后另外一个core闲置?比如一个 : event来了,callback、放在那个core上运行是OS底层调度的?还是node也参与
|
s********k 发帖数: 6180 | 20 Got it, thx.听说node在linkedin把10台服务器事情压缩到1台,有这么牛逼吗?之前
linkedin用的啥webserver?
【在 y*******g 的大作中提到】 : linux taskset
|
|
|
y*******g 发帖数: 6599 | 21 不知道 我那时候还没进去
【在 s********k 的大作中提到】 : Got it, thx.听说node在linkedin把10台服务器事情压缩到1台,有这么牛逼吗?之前 : linkedin用的啥webserver?
|
p*****2 发帖数: 21240 | 22
你的意思是node一上来就起几个process?那谁来分配web的request呢?
【在 y*******g 的大作中提到】 : node的典型用法就是多少个cpu core就多少个node process, 所以如果一个block了, : context switch的cost就上去了
|
p*****2 发帖数: 21240 | 23
distributed
【在 s********k 的大作中提到】 : 怎么判断一个process会CPU bound?kernel做monitor?scale out出去具体会是什么办 : 法?
|
y*******g 发帖数: 6599 | 24 另一个服务器,比如nigix来做reverse proxy
【在 p*****2 的大作中提到】 : : distributed
|
p*****2 发帖数: 21240 | 25
不错。那对于需要高计算的,你们是如何scale out的?感觉这方面node就不如akka了
。
【在 y*******g 的大作中提到】 : 另一个服务器,比如nigix来做reverse proxy
|
y*******g 发帖数: 6599 | 26 不知道,我是做app的呀,node平时偶尔接触一下。在后面的就不知道了
【在 p*****2 的大作中提到】 : : 不错。那对于需要高计算的,你们是如何scale out的?感觉这方面node就不如akka了 : 。
|
p*****2 发帖数: 21240 | 27
你不是准备转backend吗?
【在 y*******g 的大作中提到】 : 不知道,我是做app的呀,node平时偶尔接触一下。在后面的就不知道了
|
y*******g 发帖数: 6599 | 28 没太多机会。安排的任务主要在frontend。决心也不够大。
【在 p*****2 的大作中提到】 : : 你不是准备转backend吗?
|
p*****2 发帖数: 21240 | 29
看来大牛要前后端通吃了。
【在 y*******g 的大作中提到】 : 没太多机会。安排的任务主要在frontend。决心也不够大。
|