4

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

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

我的问题是,根据页面的大小,这些部分中的大多数需要 10-20 毫秒来渲染,但是其中一些部分需要 800-1000 毫秒来渲染。似乎没有一种模式,如果我快速刷新并且经常不刷新,通常会有相同的模式。

4

1 回答 1

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

通过:http ://www.web-l.nl/posts/15-tuning-ruby-s-garbage-collector-with-rvm-and-passenger

于 2013-02-12T12:03:20.683 回答