在过去几个月学习rails并启动我的第一个Web应用程序后,我发现我遇到了内存膨胀(有关详细信息,请参阅Scout屏幕截图)!
我试过查看Scout文档和StackOverflow,但目前没有任何效果。
这就是我所知道的:
在本地,我的渲染速度似乎正常。一旦我点击,bam一切都会快速显示(最多1秒钟)。
在我的Heroku服务器上,我正在经历剧烈的减速(大约12秒)!
在我渲染一次页面后,连续渲染的速度要快得多(不到1秒)。我的猜测是有某种形式的缓存可以帮助我。
先谢谢你!
Scout已经说过内存膨胀了。
<windows.h>
<table class="alt">
<thead>
<tr>
<th class="2u">Frequency</th>
<th class="3u">Letters</th>
<th class="4u">Next Reminder</th>
<th class="1u">Active</th>
<th class="2u">View Order</th>
</tr>
</thead>
<tbody>
<!-- Renders orders/_order.html.erb -->
<%#= render @orders %>
<% @orders.each do |order| %>
<%= render order %>
<% end %>
</tbody>
<tfoot>
<tr>
<td colspan="2"></td>
<td colspan="3"><%= will_paginate(@orders) %></td>
</tr>
</tfoot>
</table>
<tr id="order-<%= order.id %>">
<td><%= order.freq %></td>
<td><%= pluralize(order.microposts.length, "post") %></td>
<td><%= show_time(order.reminder) %></td>
<td><%= human_boolean(order.continue) %></td>
<td>
<%= link_to "View", order_microposts_path(order) %>
</td>
</tr>
def index
# @user from application controller
# Get orders including microposts (for size)
@orders = Order.includes(:microposts).where(user_id: params[:user_id])
.paginate(page: params[:page], per_page: 5)
end
答案 0 :(得分:0)
你在循环中呈现部分,这不是非常有效,推荐的方法是渲染部分一次,并将对象作为集合传递:
= render partial: 'orders/order', collection: @orders
或者你注释掉的速记也应该有用:
= render @orders