我该如何确定导致我的局部视图渲染速度缓慢的原因?

3
我正在开发一个需要呈现非常大页面的应用程序,该页面由一堆部分构成。 我可以在日志中看到每个部分的呈现时间,并且有几个部分需要超过500毫秒。
很明显,这是不可接受的。 我应该如何分析这些部分的呈现情况?例如,如何获取其中调用的方法的详细信息并说,“哦,我在使用link_to时花了X毫秒”,等等。
我使用的是Ruby 1.9.2-p290(如果有帮助,我可以使用1.9.3)和Rails 3.1.3。
1个回答

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打开时执行此操作 - 您不希望类重新加载遮挡您的视图。


谢谢你迄今为止的帮助。我能看到HTML图表,但我不理解它。你知道有关此方面的任何参考资料吗? - Nathan Long
嗯,这有所帮助。http://ruby-prof.rubyforge.org/files/examples/flat_txt.html - Nathan Long

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接