随机轨道偏移比预期慢100倍

时间:2013-02-10 08:19:21

标签: ruby-on-rails ruby-on-rails-3 templates rendering

我有一个相当大的响应视图,分解为部分结构看起来如此,其中*表示此部分被加载多次:

show
-responses
--response*
---comments
----comment*
---comment_form
-stats

我的问题是,根据页面的大小,大多数这些部分需要10-20ms来渲染,但是这些部分需要800-1000ms来渲染。似乎没有一种模式,如果我快速刷新而且经常不刷新,那么它们就是一样的。

1 个答案:

答案 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