Rails 3 到 Rails 4 升级导致页面加载时间异常缓慢

Rails 3 to Rails 4 upgrade results in abnormally slow page load times

我正在将应用程序从 Rails 3(最新)升级到 Rails 4.0。这导致页面加载时间极其缓慢。在一种情况下,以前在不到一秒内呈现的页面现在需要超过 4 小时才能加载。

我们一直在尝试分析该应用程序,但到目前为止一无所获。

Before

Rails 3.2.19
Ruby 1.9.3-p547

After

Rails 4.0.13
Ruby 1.9.3-p547

[另外,我知道这不是一个很好的问题,因为我没有提供足够的细节。当我获得更多信息时,我将编辑并添加详细信息 and/or 如果您可以提供具体信息以帮助我提供更多反馈。我不想对我的 post 含糊其辞。我只是现在没有事情可做。]

这原来是 rails-observers gem 中的性能问题。它可能与 Github.

中描述的这个问题有关

https://github.com/rails/rails-observers/issues/35

我们最终进行了猴子补丁 ActiveModel::Observer 截至发稿时,修复程序仍未发布。

# config/initializers/rails_observer_monkey_patch.rb
Rails.configuration.to_prepare do
  ActiveModel::Observer.class_eval do
    def self.observe(*models)
      models.flatten!
      models.collect! { |model| model.respond_to?(:to_sym) ? model.to_s.camelize.constantize : model }
      redefine_method(:observed_classes) { models }
    end
  end
end