我有一个相当大的响应视图,分解为部分结构看起来如此,其中*表示此部分被加载多次:
show
-responses
--response*
---comments
----comment*
---comment_form
-stats
我的问题是,根据页面的大小,大多数这些部分需要10-20ms来渲染,但是这些部分需要800-1000ms来渲染。似乎没有一种模式,如果我快速刷新而且经常不刷新,那么它们就是一样的。
答案 0 :(得分:0)
首先使用
<%= render partial: 'partial', collection: @collection, as: c %>
而不是
<% @collection.each do |c| %>
<%= render partial: 'partial', locals: { c: c } %>
<% end %>
这很明显,我不知道为什么我不这样做。提供了一些改进但不是很大。
如果你正在运行1.9.3这些环境变量的增加产生了巨大的差异,请求大约20%的折扣:
RUBY_HEAP_MIN_SLOTS=600000 # This is 60(!) times larger than default
RUBY_GC_MALLOC_LIMIT=59000000 # This is 7 times larger than default
RUBY_HEAP_FREE_MIN=100000 # This is 24 times larger than default
via:http://www.web-l.nl/posts/15-tuning-ruby-s-garbage-collector-with-rvm-and-passenger