2016-02-29 89 views
0

我试图在Rails中实现片段缓存。如果没有缓存,代码如下: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> 

我看到的输出(在第二刷新) - NO SQL查询(除用户角色检查),没什么,只是:

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

而我的问题是:如何可能,后缓存需要更长的时间?在日志中没有任何反应,文件在0.7毫秒内加载,为什么总共需要1秒?

+1

好像你缺少'do':'<%cache'my_cached'do%>' – spickermann

+0

是的,写错了。 –

回答

0

缓存工作正常。

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