2

Ruby on Rails アプリケーションのパフォーマンスの問題を調査しています。NewRelic は、updated_at 属性が何度も更新された特定のオブジェクトを多数表示しています。これがどこで起こっているのか完全にはわかりません。このマニフェストを特定する 1 つの方法は、モデルのオブザーバーを作成し、その属性が変更されるたびにスタック トレースを取得することであると判断しました。だから私は次のようなものを持っています:

class FooObserver < ActiveRecord::Observer
  def before_save(foo)

    if foo.updated_at_changed?
      Rails.logger.info("Foo changed - print stack trace??")
    end
  end

end

この時点でこのスタック トレースを取得する最善の方法は何ですか? それとも発信者?

どんなアドバイスも素晴らしいでしょう。この更新が何度も行われるのをやめる必要があります。パフォーマンスが低下しています。

4

1 に答える 1

3

呼び出し元を使用

Rails.logger.info caller
于 2012-12-19T00:16:10.843 に答える