我正在尝试在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秒钟?
答案 0 :(得分:0)
缓存正常工作。
我使用mini profiler来查看渲染是如何工作的,我的页面刷新速度更快 - 从160毫秒到大约10毫秒。问题是开发模式和 application.html.erb 文件,加载时间大约为1秒。