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
我正在将应用程序从 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