Ruby on rails 找出哪个高级函数正在进行大量低级调用

Ruby on rails 找出哪个高级函数正在进行大量低级调用,ruby-on-rails,trace,Ruby On Rails,Trace,我有一个函数,它被调用了一千多次,减慢了速度。但是,它是一个低级函数,不知道我的哪个高级函数正在删除并进行这些调用。我怎么知道 如果低级函数是用Ruby编写的,请重新打开它的类并使用别名\u方法\u链: class TheClass def low_level_with_debug_output puts "I am being called by #{caller.first.inspect}" low_level_without_debug_output end

我有一个函数,它被调用了一千多次,减慢了速度。但是,它是一个低级函数,不知道我的哪个高级函数正在删除并进行这些调用。我怎么知道

如果低级函数是用Ruby编写的,请重新打开它的类并使用
别名\u方法\u链

class TheClass
  def low_level_with_debug_output
    puts "I am being called by #{caller.first.inspect}"
    low_level_without_debug_output
  end

  alias_method_chain :low_level, :debug_output
end
alias\u method\u chain
是一个Rails ism


如果低级函数不是用Ruby编写的,您可能需要在解释器本身上使用Ruby debug甚至gdb来获取堆栈跟踪。

如果低级函数是用Ruby编写的,请重新打开它的类并使用
别名方法链

class TheClass
  def low_level_with_debug_output
    puts "I am being called by #{caller.first.inspect}"
    low_level_without_debug_output
  end

  alias_method_chain :low_level, :debug_output
end
alias\u method\u chain
是一个Rails ism


如果底层函数不是用Ruby编写的,您可能需要在解释器本身上使用Ruby debug甚至gdb来获取堆栈跟踪。

谢谢!我这样做了,它显示了以下错误。知道哪里出了问题吗?“需要/Users/mingyeow/mrtweet/lib/formatter/user_formatter.rb来定义formatter::UserFormatter”您可能错误地重新打开了该类?没有看到所有的代码我不能确定谢谢!我这样做了,它显示了以下错误。知道哪里出了问题吗?“需要/Users/mingyeow/mrtweet/lib/formatter/user_formatter.rb来定义formatter::UserFormatter”您可能错误地重新打开了该类?没有看到所有的代码,我不能确定