ruby-on-rails – Rails观察器导致开发模式下的处理时间变慢

ruby-on-rails – Rails观察器导致开发模式下的处理时间变慢,第1张

概述我在Rails 3.1.1上,我注意到我的应用程序在开发模式下变得非常慢(15秒).请参阅下面的我的firebug’Net’列表: 我做了很多事情,比如: >减少宝石的数量 >转动课堂缓存 >将资产调试变为虚假 >将资产压缩转为真 >安装rails-dev-boost gem 也许有一些改进,但没有什么能帮助它以我在运行localhost时所期望的那么快.也就是说,直到我在application. 我在Rails 3.1.1上,我注意到我的应用程序在开发模式下变得非常慢(15秒).请参阅下面的我的fireBUG’Net’列表:

我做了很多事情,比如:

>减少宝石的数量
>转动课堂缓存
>将资产调试变为虚假
>将资产压缩转为真
>安装rails-dev-boost gem

也许有一些改进,但没有什么能帮助它以我在运行localhost时所期望的那么快.也就是说,直到我在application.rb中注释掉我的观察者配置行:

config.active_record.observers = :item_observer,:loan_observer,:frIEndship_observer,:message_observer,:user_observer

然后应用程序再次快速(约1秒)加载时间.现在查看fireBUG列表:

其他说明:

>在Heroku上进行生产时,它的速度很快(约1秒),正如您所期望的那样.
>我正在使用postgresql和Thin;我没有尝试使用其他数据库来查看是否存在此问题.
>当我只注释掉最后一个观察者user_observer时,加载时间减少了大约一半.
> development.log中打印的加载时间不反映实际加载时间.资产被标记为304 Not ModifIEd(0ms),它们确实需要一段时间才能加载.
>是的,我正在使用资产管道

黄金问题:注册观察员的简单行为是否导致资产加载缓慢?那可以做些什么呢?

解决方法 看看 https://github.com/wavii/rails-dev-tweaks.

Rails在开发模式下运行每个Sprockets资产请求的所有to_prepare挂钩.这包括自动(重新)加载代码,以及各种宝石在那里执行工作.在你的情况下,观察者正在注册(我相信 – 导致Rails引用你的应用程序的很大一部分,以便引用模型)

rails-dev-tweaks禁用to_prepare&重新加载任何资产请求(以及其他一些资产请求 – 阅读其自述文件的第一部分).对于任何体面的项目来说,都要大量加快您的开发环境.它还可以配置为您喜欢的任何其他请求执行此 *** 作

总结

以上是内存溢出为你收集整理的ruby-on-rails – Rails观察器导致开发模式下的处理时间变慢全部内容,希望文章能够帮你解决ruby-on-rails – Rails观察器导致开发模式下的处理时间变慢所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1272301.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存