我正在处理一个必须呈现一个非常大的页面的应用程序,该页面由一堆部分组成。我可以在日志中看到每个部分的渲染时间,有几个需要超过500毫秒。
显然,这是不可接受的。 如何分析这些部分的渲染?例如,我如何能够对其中调用的方法进行细分,并说:“哦,我在link_to
的Y使用上花费了X毫秒”,等等。
我正在使用Ruby 1.9.2-p290(如果有帮助,我可以使用1.9.3)和Rails 3.1.3。
答案 0 :(得分:2)
我通常会使用ruby_prof gem。
安装gem,然后设置一个看起来像这样的around_filter
def log_profile
result =RubyProf.profile do
yield
end
File.open(Rails.root.join("profile.html"),"w") do |out|
printer = RubyProf::GraphHtmlPrinter.new(result)
printer.print(out,:min_percent=>0)
end
end
这会将动作的个人资料转储到profile.html,供您检查。 Ruby prof有一堆你可以使用的输出格式化程序。请记住在cache_classes上执行此操作 - 您不希望类重新加载模糊视图