在分析ruby应用程序时是否可以忽略不相关的方法?
使用以graph-html模式打印的ruby-prof时,一种方法的报告说(有一些剪辑)
%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#中的yield
block。
查看Hash#的报告每个都令人困惑,因为它报告了使用Hash#each的所有代码调用的所有代码。
是否有可能要求ruby-prof将有关产生的代码的信息放在ClassName#method_name
的报告中?
使用min_percent
或切换到平面配置文件似乎没有帮助。
版本0.9.0的ruby-prof允许方法消除 。 例如,要消除Integer#times
,请使用
result = RubyProf.stop result.eliminate_methods!([/Integer#times/])
以便
def method_a 5.times {method_b} end
将直接指示method_a
和method_b
之间的关系。
如果你不介意低技术,也许你想考虑这个 。 您只需要能够暂停调试器。 保证,它会很快找到你能找到的任何其他方式,而不是向你显示任何不相关的代码。