有没有人遇到过 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/