新手问题 谁能告诉一些 Cache 的应用与建议

sanvi · 2012年11月26日 · 最后由 sanivbyfish 回复于 2012年11月27日 · 2327 次阅读

http://ruby-china.org/topics/6931 网站现在还没做任何 cache,刚看了下 GA,发现在首页打开平均时间居然 00:01:43

太吓人了~

大家支下招吧

你这个首页本来也没什么东西,平均时间这么高,八成是某地的网络不畅

@ywencn , 首页全是 api.map.baidu.com 加载过久导致。

#2 楼 @ywencn #3 楼 @lyfi2003 应该是要得到用户的地址信息吧 我看登录进去后会有“离你最近”的这个

先找瓶颈再解决问题。不了解慢在哪里,加 cache 也不一定能命中。

如果是上面几位说的加载第三方服务慢,那就对那些内容进行异步化和延迟加载。

分析 Rails log 看看是那些 action 慢,然后再分析看是那个部分导致慢,接着尝试优化代码和数据库看是否能提上去,cache 不是用来加速的,而是用来解决搞访问量的时候,减少数据库和重复计算的

#3 楼 @lyfi2003 因为有些地方需要用到,在书和借出的页面需要地图,不过这些 JS 代码我都写在 JS 里面一起打包了,所以放在首页

#4 楼 @Tony612 地图主要是在书的详情页面和你发布图书会有,其实首页是不需要的

#6 楼 @huacnlee 我看了下,首页的显示的最新评论相当的耗时,是不是考虑对最新的评论最分块的 cache?还是怎么样?

#9 楼 @sanivbyfish 你把排序用 id 排列就快了 我猜测你最新评论的排序是用 created_at 倒序排列的,并且这个字段没加索引

#10 楼 @huacnlee 我现在是这样做的

<% post.comments.order_by("created_at DESC").each_with_index do |comment, index|  %>
<div class="convo attribution clearfix"><p><a href="<%= user_path(comment.user) %>" title="<%= comment.user.name %>" class="img x"><%= user_avatar_tag(comment.user, :style => "small") %></a><a href="<%= user_path(comment.user) %>" class="author x"><%= comment.user.name %></a>&nbsp;<%= comment.body %></p></div>
<% break if index == 2 %>
<% end %>
<% end %>
需要 登录 后方可回复, 如果你还没有账号请 注册新账号