【问题标题】:What does Rails mean when it reports spending time rendering a view?当 Rails 报告花费时间渲染视图时,Rails 是什么意思?
【发布时间】:2010-01-15 23:09:48
【问题描述】:

这是我的 Rails 日志的摘录:

渲染歌曲/_song_list (683.4ms)
在 841 毫秒内完成(查看:633,DB:159)| 200 确定

Rails 报告渲染视图花费了 633 毫秒是什么意思?

在这种特殊情况下,我正在遍历一组项目并为每个项目打印一个<li>(正如部分名称所暗示的那样)——Rails 是否花费了 633 毫秒的连接字符串?我觉得这(或任何其他受 CPU 限制的操作)应该大致无限快。

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    确保您没有从数据库中获取每个项目。使用 find 上的 include 选项预加载您需要的所有内容,否则,在 View 运行时,您将运行大量查询并初始化新的 ActiveRecord 对象,这会浪费大量时间。

    【讨论】:

    • 在视图中运行的数据库查询是否计入Completed in 841ms (View: 633, DB: 159)中的“视图”编号或“数据库”编号
    • 我的想法是他们应该这样做,但我不会依赖它——而且,DB 不包括对象实例化。
    【解决方案2】:

    View 在这种情况下意味着 everything:引导程序、包含、初始化等所有内容。不过,它似乎仍然很多。在什么都不做的视图中,时间是什么样子的?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-26
      • 2011-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-12
      • 1970-01-01
      • 2014-12-30
      相关资源
      最近更新 更多