ruby-on-rails - rails : long delays AFTER webrick renders page before browser displays page (mac development machine)

标签 ruby-on-rails

有没有人遇到过 Rail 开发页面显示不规律地减速和加速(页面在控制台显示整个页面已呈现后 15-20 秒出现)。

我的开发环境是 Mac (Lion) 上的 rails 3.0.17、WEBrick 1.3.1、ruby 1.9.2,以及用于开发数据库的 Postgres v11(Heroku 提供的应用程序)。

最近,我注意到一些非常长的加载页面延迟...有时 15 到 20 秒,延迟与页面的复杂性完全无关,给定的页面可能会快速加载几次,然后加载慢的。几分钟可能会很糟糕,然后消失一个小时。

无论页面加载速度慢还是快,rails 日志总是显示页面呈现得相当快......我会看到类似“在 486 毫秒内完成 200 OK”之类的内容,但浏览器可能会说“等待本地主机”在显示页面之前再等待 15 秒。

似乎不依赖于浏览器(FF 或 Safari 行为相同)。

似乎与更新代码库无关。我 cna 正在测试一些 UI 元素并且一切都很活泼,然后突然几个页面挂起 15-120 秒。

即使我在开发中将 gem 'rails-dev-boost' 添加到我的 Gemfile 后仍然会发生。

我还在我的开发机器中添加了 gem 'http_logger' 来记录对外部 http 请求(如 S3)的调用,但不认为这是一个因素(延迟通常发生在不访问外部 API 的页面上)。

我的布局有几个外部 .js 依赖项,例如 http://static.twilio.com/libs/twiliojs/1.0/twilio.min.js , 但我已将其添加到我的布局底部,因此如果延迟,我仍然可以(大概)快速看到页面内容。 (此外,它可能被我的浏览器缓存了)。

当然,我已经尝试过重启机器,经过验证的事件监视器对于 CPU 和内存使用来说似乎是正常的。它似乎与时间机器何时运行无关。

更多信息:根据下面 AKG 评论中的建议,我使用了 Firebug 的 Web 控制台,大多数情况下样式表加载时间为几毫秒,但当速度变慢时,我发现大多数情况下有 8-20 秒的延迟样式表...这表明 webrick 未能及时提供页面?

最佳答案

可能是有缺陷/缓慢的中间件在调用渲染之后但在发送响应之前执行。我最近遇到了这个问题,在某些情况下暂停超过 1 分钟,而罪魁祸首原来是 Bullet gem,它旨在帮助我们检测 N+1 查询。我删除了中间件,问题就消失了!

关于ruby-on-rails - rails : long delays AFTER webrick renders page before browser displays page (mac development machine),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14098371/

相关文章:

ruby-on-rails - 如何每天在 rails 中登录一个新文件?

ruby-on-rails - Rails ActiveStorage 如何通过 REST API 上传文件

ruby-on-rails - authenticate_or_request_with_http_token 返回 html 而不是 json

ruby-on-rails - Rake 预览在 Octopress 中不起作用

ruby-on-rails - Ruby 类图不显示在 RubyMine 的图表菜单中

ruby-on-rails - 在单个操作中创建新 ActiveRecord 模型对象的层次结构的首选方法

ruby-on-rails - Rails link_to 与远程 : true processing html instead of js after page refresh

ruby-on-rails - Rails 如何使用 in_groups_of 进行索引

ruby-on-rails - 我应该将模型计算保存为属性吗?

ruby-on-rails - 带有分类器 gem 的无效编码符号