该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2009-03-24
最后修改:2009-03-25
lllyq 写道 2.3.2.1就是用gem install的2.3.2
我测下来性能差距在10%, 2.3慢,主要在render部分,如果没有render view,性能持平 有空大家也测测看 补充一下,如果view比较复杂,有loop render partial的n>10,差距稍稍增加,也不超过15% god! 俺超爱用render :file ,还循环内嵌用。。。。没办法太喜欢了。。。。html一多,我就想办法拆分。。。render。。。。 ps:这习惯是从liferay里面学来的,用了n多的include,而且用得很好 |
|
返回顶楼 | |
发表时间:2009-03-24
昨天刚升到2.3.2,xp 下面,跑ruby1.8.6,感觉开发的环境下速度快多了,2.2.2的时候一刷页面,机器就慢下来,现在好多了。。不知道生产环境如何
|
|
返回顶楼 | |
发表时间:2009-03-24
最后修改:2009-03-24
ruby 轮子少是因为以前没什么人用 ruby,现在用户多起来,轮子也会多起来的,呵呵。下次换 php 得啦。
|
|
返回顶楼 | |
发表时间:2009-03-24
amonlei 写道 昨天刚升到2.3.2,xp 下面,跑ruby1.8.6,感觉开发的环境下速度快多了,2.2.2的时候一刷页面,机器就慢下来,现在好多了。。不知道生产环境如何
我在开发环境下面也是快很多,这得益于2.3的lazy load,可是到了生产环境就慢得不像话,按道理2.3移植到了rack,并且加上了一些性能优化,不应该这么挫的,等有时间好好profile一把。 |
|
返回顶楼 | |
发表时间:2009-03-24
duker 写道 shaka 写道 可以理解,看来ROR还是高级玩具。
不知道Robbin有没有上了贼船的感觉 好像看到一个测试数据, python 应该是动态语言里面速度最快的, robbin当初为何没有选择python 呢? 如果这么说的话,现在我正在游戏服务器里集成web服务,使用lua,速度快得多,不过需要自己造不少轮子 |
|
返回顶楼 | |
发表时间:2009-03-24
我想我可能找到rails2.3性能爆差的原因了,在Rails的blog上面曾经有这样一篇日志:http://weblog.rubyonrails.org/2009/2/27/this-week-in-edge-rails,里面有这样一段话,这段话我是曾经看过的,当时没太注意,看到上面有人回帖说rails2.3慢是慢在了render view上面,我这才猛然想到了以前看过的这段话:
从老版本升级上来的代码,默认并没有打开template cache,这可能就是性能差的罪魁祸首,接下来我将测试一下。 引用 A Note About Template Loading
After some extensive work by several authors (here’s the Lighthouse ticket), Rails 2.3 includes the ability to enable or disable cached templates for any particular environment. Cached templates give you a speed boost because they don’t check for a new template file when they’re rendered – but they also mean that you can’t replace a template “on the fly” without restarting the server. In most cases, you’ll want template caching to be turned on in production, which you can do by making a setting in your production.rb file: config.action_view.cache_template_loading = true This line will be generated for you by default in a new Rails 2.3 application. But please note: if you’ve upgraded from an older version of Rails, you won’t have this setting in your production.rb and template caching will be off by default. Unless you really need the ability to update templates in production without restarting the server, you should be sure to add this setting when you upgrade. |
|
返回顶楼 | |
发表时间:2009-03-24
tanggq 写道 ror好处是开发快,但部署好象就不那容易了
这个比apache+PHP基本上不会存在这个问题 这个是许多网站前台均用php的原因 ubuntu linux 有傻瓜的ror部署方案。 |
|
返回顶楼 | |
发表时间:2009-03-24
有小白鼠,爽。
不过我觉得如果语言太魔术了,性能要受影响 毕竟支持魔术背后需要很多层次 |
|
返回顶楼 | |
发表时间:2009-03-24
最后修改:2009-03-24
测试过了,不是template cache的问题,但是发现了一个新问题。
在我的MacBook上面测试rails2.2,用ab访问论坛首页,可以60request/s,disable memcached以后,性能下降到38request/s,换成rails2.3以后,只有16request/s,性能差的惊人!但是在disable memcached以后,居然性能提升到了24request/s,看来性能问题是和memcached有关的。而template cache打开还是关闭,对性能测试结果几乎没有影响。 不过在都关闭memcached的情况下,rails2.3的测试性能仍然远远落后于rails2.2,所以暂时对rails2.3还是不报什么希望。 |
|
返回顶楼 | |
发表时间:2009-03-24
与memcached有关倒是有可能,我第一次测试的结果也是2.3性能爆差,大概是2.2的一半,现在回忆起来当时memcached server正在跑一个很耗cpu的脚本,于是换了一个memcached server,结果性能就总是比较接近了。
而且我的memcached也是自己做了wraper,貌似rails升级的changelog也有与memcached的修改,也有可能我的wraper绕过了rails的修改,明天到公司再看看 |
|
返回顶楼 | |