我正在调查我的 Ruby on Rails 应用程序中的一些性能问题。NewRelic 向我展示了许多其 updated_at 属性已多次更新的特定对象。我不完全确定这发生在哪里。我决定尝试定位这种表现形式的一种方法是为我的模型创建一个观察者,并在该属性被修改时获取堆栈跟踪。所以我有类似的东西:
class FooObserver < ActiveRecord::Observer
def before_save(foo)
if foo.updated_at_changed?
Rails.logger.info("Foo changed - print stack trace??")
end
end
end
此时获取此堆栈跟踪的最佳方法是什么?还是来电者?
任何建议都会很棒。我需要停止一次又一次地进行此更新,这会损害性能。