简单的问题,我有一个传统的Rails 2.3应用程序,它需要很长时间才能完成。 rake
需要超过25秒,但看起来并没有发生任何事情。
有没有简单的方法我可以从应用程序加载时获得某种分析器转储,以查看哪些方法花费的时间最长?
Rails 2.3和3.1的解决方案将更有帮助。
答案 0 :(得分:10)
描述需要rails环境的rake任务,如下所示:
desc "Load it"
task :loadit => :environment do
end
然后使用ruby-prof
进行配置文件ruby -Ilib -S ruby-prof -p graph_html `which rake` loadit > profile.html
应该使用rails 2.3只在3.x上测试过它但是我没有理由认为它不应该工作。
答案 1 :(得分:1)
您可以使用挂钩的分析器启动您的应用程序,例如ruby-prof或perftools.rb。当它仍在启动时,启动针对它的HTTP查询,一旦应用程序启动,它将尝试GET
/kill_me
路由。 /kill_me
可能会导致您的应用程序通过调用exit
而优雅地死亡。结果你得到了你的创业公司简介。