Rails片段缓存更慢?

时间:2016-02-29 11:03:19

标签: ruby-on-rails ruby caching

我正在尝试在Rails中实现片段缓存。没有缓存,代码如下所示:

<div>
  <% data = MyObject.getDataFromDataBase %>

  <!-- complicated divs displaying the 'data', multiple partials -->
</div>

它会创建大量的SQL查询(在视图中),总的来说,它可以解决:

Completed 200 OK in 1107ms (Views: 1007.0ms | ActiveRecord: 93.6ms)

用这样的缓存包装它之后:

<div>
  <% cache 'my_cached' do %>
    <% data = MyObject.getDataFromDataBase %>

    <!-- complicated divs displaying the 'data', multiple partials -->
  <% end %>
</div>

我看到输出(在第二次刷新时) - 没有SQL查询(除了用户角色检查),没有,只是:

 Read fragment views/my_cached/bda6867d8a08ec1637c0c926edced2d2 (0.7ms)
 Completed 200 OK in 1241ms (Views: 1228.7ms | ActiveRecord: 6.8ms)

我的问题是:如何可能,缓存后需要更长的时间?日志中没有任何事情发生,文件加载时间为0.7毫秒,为什么整体需要1秒钟?

1 个答案:

答案 0 :(得分:0)

缓存正常工作。

我使用mini profiler来查看渲染是如何工作的,我的页面刷新速度更快 - 从160毫秒到大约10毫秒。问题是开发模式和 application.html.erb 文件,加载时间大约为1秒。