Rails – 请求的完成时间明显高于View和DB时间
我有一个控制器,它从一个相当复杂的关系查询返回JSON或XML,也有一些控制器逻辑。
我通过改进我的查询并确保我的索引对我的查询是正确的来调整数据库方面。
在我的日志中,我看到这样的项目:
Completed in 740ms (View: 1, DB: 50)
因此,如果我理解正确,这意味着视图需要1秒钟才能渲染,数据库查询为50毫秒。 是控制器中的所有剩余时间吗? 我试过绕过我的控制器逻辑,只是把我的to_json和to_xml留在那里,它也一样慢。 作为参考点,我的平均返回JSON结果集是168k。
是否有其他步骤及时进入已完成状态? 它是否包括网络传输的最后一个字节之前的时间?
更新:我在基准测试块中包含了控制器的各个部分:
self.class.benchmark("Active Record Find") do #my query here end
我发现即使日志行显示DB:50,我的活动记录查找几乎占用了剩余的所有时间。 所以现在我很困惑这个DB号码意味着什么,为什么基准线会说~~ 600ms,但DB:时间将是~50。
谢谢
您的数据库号是实际在数据库中花费的时间,但不是加载ActiveRecord对象。
因此,如果您正在加载168,000个ruby active_record对象以呈现为JSON,这将解释您的550毫秒(或更多!)
- 尝试执行任何以“rails”开头的命令会产生“找不到Gemfile”
- Rails chartkick:只需要轴上的整数值。 使用离散或其他东西?
- PrivatePub未定义错误Rails 3.2私人酒吧
- 如何更改ActiveAdmin显示时间的方式(每次)
- Ruby on Rails 3 + Apache2 + Phusion Passenger:Bundler :: GemNotFoundexception
- Capybara-webkit引发了Capybara :: Driver :: Webkit :: WebkitInvalidResponseError
- 使用Arel生成子查询以获得平均值
- 设计身份validation – devise_error_messages! 在一个视图中导致nil的“未定义的方法`错误”:NilClass
- 从另一台计算机访问Rails开发服务器