oyaji's Blog
rails benchmark
命令行工具
benckmark
#ruby script/performance/benchmarker 3 "Product.find :all"
执行3次Product.find :all, 输出结果中real列为实际运行所消耗的时间
profiler
#ruby script/performance/profiler "Product.find :all" 10
执行10次Product.find :all, 列出所有涉及到的类库的运行时间
测试用例
比如测试View中某段代码的执行时间,
<% benchmark("Showing projects partial") do %> <%= render :partial => @projects %> <% end %>
Model中测试,
Project.benchmark("Creating project") do project = Project.create("name" => "stuff") project.create_manager("name" => "David") project.milestones << Milestone.find(:all) end
日志
Rails生成的日志,
Processing ItemsController#index (for 127.0.0.1 at 2009-01-08 03:06:39) [GET]
Rendering template within layouts/items
Rendering items/index
Completed in 5ms (View: 2, DB: 0) | 200 OK [http://0.0.0.0/items]
总的请求时间是5ms, View占了2ms, DB为0, 其他3ms为Controller占用,可以用shell来分析反应慢的请求
具体见这里