【发布时间】:2015-01-09 18:52:36
【问题描述】:
我正在尝试在我的 Ruby on Rails 应用程序中调试极其缓慢的请求调用。我已经设法根据自己的喜好优化控制器方法,Rails 的日志告诉我它已经在 XX 毫秒 (Completed 200 OK in 5049ms (Views: 34.9ms | ActiveRecord: 76.3ms)) 内完成了操作。但是,当页面加载时,此消息会在浏览器中实际呈现之前 long 打印出来;最长约 15 秒的等待时间。 Rack mini-profiler 证实了这一点,告诉我 GET 操作(不计算完成控制器操作所花费的时间)花费了 14 秒左右。 (分析器还确认控制器动作的执行时间在 5 秒左右)。
控制器操作需要 5 秒左右的时间我很好,因为我可以对我的代码的各个部分进行基准测试,并清楚地了解什么是缓慢的以及为什么。我完全不明白为什么会存在这种神秘的滞后时间。它在做什么?
【问题讨论】:
-
一个 5 秒的动作是它应该做的 500 倍——你是在那个动作中做一些计算密集的事情,还是你有可能影响整个应用程序?你有任何非标准的中间件吗?你遇到交换了吗?硬盘是否遇到错误?
-
会不会和渲染结果的size有关?在 5 秒内你可以构建相当多的输出,可能开销是由结果的序列化造成的,并将其写入套接字......
标签: ruby-on-rails ruby lag