分享 Is Rails Slow? by Akira Matsuda

Rei · 发布于 2014年11月08日 · 最后由 i5ting 回复于 2014年11月20日 · 7263 次阅读
1
本帖已被设为精华帖!

https://speakerdeck.com/a_matsuda/is-rails-slow

Is Rails Slow? by Akira Matsuda

Slides for Rails Israel 2014 talk "Is Rails Slow?"

共收到 32 条回复
1553

我的结论就是用 erb

3253

以色列

9442

#1楼 @Peter 能云一份不? 云梯连不上.

8楼 已删除
314

同样都是用 haml,为什么 sinatra 要快这么多呢?

515

另外附上 这个PPT 下面的链接 https://speakerdeck.com/sferik/writing-fast-ruby

871

路由也是很耗时的

4151

涨姿势

3454

好东西!!!

165

url_helper 在哪里都是杀手,写 Flask 有感。。。

4933

感觉跟sinatra比较是不是有点局限在ruby范围内了,有没有跟别的语言对比的,比如phalcon之类的。

1

#15楼 @realwol 那么标题就要换 Is Ruby Slow? 了

4933

#16楼 @Rei 一个语言的框架有快有慢,就只从框架横向比较一下,或许对框架选择这来说更加有价值。

4933

#18楼 @Rei 如果这些比较能跟ppt里的比较一样详细点,那就完美了。

21楼 已删除
22楼 已删除
23楼 已删除
4594

如果还是想用简洁的模板语言,前端页面开发人员也能接受,slim还是不错的选择。如果团队不喜欢slim,就用erb。 这有比较新的模板性能的比较: http://sephinrothcn.wordpress.com/2014/04/14/slim-vs-haml-performance-perspective/

9442

Akira Matsuda

黄家驹

11577

#18楼 @Rei 这个网站给我的感觉就是“好的好的我知道ruby最慢了”

1

#26楼 @sickate 看来需要考古了,我本来以此为共识发这个话题的:

https://ruby-china.org/topics/9825 https://ruby-china.org/topics/9853

1

#20楼 @realwol 如果详细比较,就会发现这些比较对象不是一个层面的东西,越往上,开发者要做的东西就越多,例如 http 头都要自己设置,而越往下内置的功能越多,例如 session 、路由、跨站预防…… hello world 跑分不是衡量工具选择的唯一标准。

不过这个测试还是挺有用的,至少是一个参考因素。

11577

#27楼 @Rei 这些贴我也看过。确实这些比较的框架并不适合放在一起比。但他这样比了,这个结果就给人一种“ruby弱爆”的感觉不是么

8805

为什么要和 Sinatra 对比?

31楼 已删除
De6df3

Rails 慢的地方应该是在模板渲染上面,这次我们的项目(酷盘)大量都是前端渲染,Rails 提供 JSON,正常的数据场景时间在 20~60ms 左右(Ruby China 的场景 100~200ms)

3679

#32楼 @huacnlee 前端你们用的什么模板?

5597

#32楼 @huacnlee 套娃就会好多了

96

#32楼 @huacnlee ajax来请求rails json api吗?那一个复杂的页面,是否需要N个ajax请求获取各自所需json再拼接出页面,这样渲染出的页面会不会很奇怪呢?(比如页面某块显示很快,其它块则一直loading)

4087

这个slide做的测试过于简单了,没什么参考价值,这么简单的hello world级别测试很多性能差异是对比不出来的,连起码的数据库访问代码都没有,而且没有并发测试。我自己写过复杂一些的项目,并发测试对比sinatra和rails,性能差异还是挺大的,大约将近1倍(不涉及template页面渲染)。

此外代码执行速度只是性能测试的一个方面而已,还要看进程的内存占用情况,CPU波动等等。Rails的进程占用内存是远高于Sinatra的。

在我看来,现在Ruby的性能已经足够好了,除非对高IO并发要求很高的应用场景,都是没有什么问题的。而Rails的问题在于:默认使用的情况下,性能是相当差的,内存占用是相当高的。你确实可以通过各种优化和定制的手段达到接近理想的性能,但是需要你对Rails很了解,而Rails本身的体系是越来越庞大,真正要搞得那么清楚很费事,那我何必不用更简单的框架呢,要费那么多事呢?

5173

想简单用node,想坑死的也用node

node 你值得死的拥有
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册