我的Rails应用在开发模式下(不使用缓存)运行良好,但在生产环境中加载主要模型的:show视图时遇到了困难。日志只显示SQL查询,大约总计为45毫秒,但实际渲染时间约为15秒。我正在使用acts_as_ferret和paperclip,但是paperclip仅调用after_save循环而无任何操作。此时只有1或2个用户在线,因此我认为没有排队阻塞,但我真的无法确定是什么导致网站负载量过高。我该怎么做才能更精确地测量服务器端功能并查看是什么导致负载时间过长?
:show视图中调用的内容:
- 大约12个HABTM列表(标签类型,分类等)
- 用acts_as_ferret找到的相关视频
- 视频的HABTM评论
这基本上就是全部内容了。作为Rails的最佳实践,我应该如何调用HABTM呢?现在我正在做类似以下的事情:
<%= @video.tags.map {|t| link_to t.name, path} %>
<%= @video.categories.map {|c| link_to c.name, path} %>
#etc....
我相信有更好的方法来解决这个问题,欢迎提出建议。