浏览 3821 次
锁定老帖子 主题:为什么我的render速度如此之慢?
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2006-10-10
需耗0.1秒 在action中只有一个语句 @count = User.count, 且 render :text => "hello" 需耗0.2秒 如果正常render,rhtml里复用一个partial,共有10条记录,则需要耗时3-5秒,在production和linux环境下可以降低到2-3秒 如果针对partial进行cache,那么可以降低到1.2秒 rhtml里的语句非常简单: <% @users.collect do %> <%= render :partial => 'user' %> <% end %> 这是怎么回事呢?首先按照常理来说,如果action为空并且只render :text,那么这将是最快的,至少要达到几百个并发,可是我的系统只有10个并发,并且在windows和linux环境下均如此。 比较困惑,还有可能是什么原因造成render速度过慢呢? 需要指出的是: 依照 http://weblog.rubyonrails.com/2006/10/2/who-wants-faster-erb-rendering-for-free 已经对rhtml中的url_for 做了优化,甚至将所有的url_for 都替换成controller/action/id的直接形式,render速度提高非常微小。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2006-10-10
找到一个重要原因,原来在application.rb中加了一条
before_filter :validate_login 另外还发现一个规律,在action中执行一次SQL查询,哪怕是很简单的,在windows下的development环境下将有0.1s的时间损耗,production下会好一些 |
|
返回顶楼 | |
发表时间:2006-10-10
你这个太不寻常了,一般不查询数据库,很容易达到1000req/s吧。
|
|
返回顶楼 | |
发表时间:2006-10-10
你的用时是怎么测的啊?
你是不是用的Webrick,它很慢的。 |
|
返回顶楼 | |
发表时间:2006-10-10
<% @users.collect do %> <%= render :partial => 'user' %> <% end %> 这段可以这么写: <%= render :partial => 'user', :collection => @users %> |
|
返回顶楼 | |