有没有办法计算 Ruby 方法被调用了多少次?
Is there a way to count how many times a Ruby method is called?
Ruby有没有办法统计一个方法被调用了多少次?我知道 caller.first
给你文件名、行号和调用方方法名,但找不到任何进一步的相关信息。
每次调用方法时使用TracePoint
到运行一段代码,然后根据方法名称进行过滤。
def foo() end
count = 0
name = :foo
TracePoint.trace(:call) do |t|
count += 1 if t.method_id == name
end
count # => 0
foo
count # => 1
foo
count # => 2
count
这里只是一个被 .trace
块关闭的局部变量。您可以将其调整为常量或实例变量,或任何最适合您的用例的内容。
Ruby有没有办法统计一个方法被调用了多少次?我知道 caller.first
给你文件名、行号和调用方方法名,但找不到任何进一步的相关信息。
每次调用方法时使用TracePoint
到运行一段代码,然后根据方法名称进行过滤。
def foo() end
count = 0
name = :foo
TracePoint.trace(:call) do |t|
count += 1 if t.method_id == name
end
count # => 0
foo
count # => 1
foo
count # => 2
count
这里只是一个被 .trace
块关闭的局部变量。您可以将其调整为常量或实例变量,或任何最适合您的用例的内容。