当使用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,而是Hash#each中的yield块。
查看Hash#each的报告会让人感到困惑,因为它会报告任何使用Hash#each的代码调用的所有代码。
有没有可能要求ruby-prof将生成代码的信息放在ClassName#method_name的报告中?
使用min_percent或切换到平面配置文件似乎没有帮助。
发布于 2010-07-27 13:11:49
ruby-prof的0.9.0版允许method elimination。例如,要消除Integer#times,请使用
result = RubyProf.stop
result.eliminate_methods!([/Integer#times/])所以
def method_a
5.times {method_b}
end将直接指示method_a和method_b之间的关系。
发布于 2010-02-11 09:51:46
如果你不介意低技术,也许你想考虑一下this。您所需要的就是能够暂停调试器。我保证,它会迅速找到任何你可以找到的任何其他方式,并且不会向你显示任何不相关的代码。
https://stackoverflow.com/questions/2241491
复制相似问题