https://speakerdeck.com/a_matsuda/is-rails-slow
Is Rails Slow? by Akira Matsuda
Slides for Rails Israel 2014 talk "Is Rails Slow?"
加精!Akira Matsuda 在这个 PPT 里面包括的内容:
一个 PPT 中把这些全部展示出来了,值得每个 Rubyist 亲自动手跟着 PPT 实践一遍!
如果还是想用简洁的模板语言,前端页面开发人员也能接受,slim 还是不错的选择。如果团队不喜欢 slim,就用 erb。 这有比较新的模板性能的比较: http://sephinrothcn.wordpress.com/2014/04/14/slim-vs-haml-performance-perspective/
#26 楼 @sickate 看来需要考古了,我本来以此为共识发这个话题的:
https://ruby-china.org/topics/9825 https://ruby-china.org/topics/9853
Rails 慢的地方应该是在模板渲染上面,这次我们的项目(酷盘)大量都是前端渲染,Rails 提供 JSON,正常的数据场景时间在 20~60ms 左右(Ruby China 的场景 100~200ms)
这个 slide 做的测试过于简单了,没什么参考价值,这么简单的 hello world 级别测试很多性能差异是对比不出来的,连起码的数据库访问代码都没有,而且没有并发测试。我自己写过复杂一些的项目,并发测试对比 sinatra 和 rails,性能差异还是挺大的,大约将近 1 倍 (不涉及 template 页面渲染)。
此外代码执行速度只是性能测试的一个方面而已,还要看进程的内存占用情况,CPU 波动等等。Rails 的进程占用内存是远高于 Sinatra 的。
在我看来,现在 Ruby 的性能已经足够好了,除非对高 IO 并发要求很高的应用场景,都是没有什么问题的。而 Rails 的问题在于:默认使用的情况下,性能是相当差的,内存占用是相当高的。你确实可以通过各种优化和定制的手段达到接近理想的性能,但是需要你对 Rails 很了解,而 Rails 本身的体系是越来越庞大,真正要搞得那么清楚很费事,那我何必不用更简单的框架呢,要费那么多事呢?