2016-02-29 119 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秒。