2

在使用 ruby​​-prof 时,以 graph-html 模式打印出来,一种方法的报告说(有一些截图)

%Total       %Self       Total       Self    Wait    Child       Calls      Name    Line
52.85%       0.00%       51.22       0.00    0.00    51.22       1  ClassName#method_name  42
                         51.22       0.00    0.00    51.22       1/3        Hash#each  4200

显然,这不是Hash#each需要很长时间,而是yieldHash#each 中的块。

查看 Hash#each 的报告令人困惑,因为它报告了所有使用 Hash#each 的代码调用的代码。

是否可以要求 ruby​​-prof 将有关已生成代码的信息放入ClassName#method_name's 报告中?

使用min_percent或切换到平面配置文件似乎没有帮助。

4

2 回答 2

2

ruby-prof 0.9.0 版允许方法消除。例如,要消除Integer#times,使用

result = RubyProf.stop
result.eliminate_methods!([/Integer#times/])

以便

def method_a
  5.times {method_b}
end

method_a将直接表示和之间的关系method_b

于 2010-07-27T05:11:49.290 回答
0

如果你不介意低技术,也许你想考虑这个。您所需要的只是能够暂停调试器。保证,它会快速找到您可以通过任何其他方式找到的任何内容,并且不会向您显示任何不相关的代码。

于 2010-02-11T01:51:45.973 回答