如何在rails控制台中获得执行时间?

时间:2010-08-19 13:28:07

标签: sql ruby-on-rails time console

我想比较执行时间Post.allSELECT * FROM posts(或其他一些陈述)我怎样才能获得Post.all的执行时间?

3 个答案:

答案 0 :(得分:212)

timing = Benchmark.measure { Post.all }

返回的对象的各种属性(Benchmark :: Tms)是here

答案 1 :(得分:3)

使用benchmark-ips gem:

2.3.0 :001 > require 'benchmark/ips'
=> true 
2.3.0 :002 > Benchmark.ips do |x|
2.3.0 :003 >       x.report("add: ")        { 1+2 }
2.3.0 :004?>       x.report("div: ") {1/2}
2.3.0 :005?>       x.report("iis: ") {1/2.0}
2.3.0 :006?>   end
Warming up --------------------------------------
           add:    280.299k i/100ms
           div:    278.189k i/100ms
           iis:    266.526k i/100ms
Calculating -------------------------------------
           add:      11.381M (± 4.5%) i/s -     56.901M in   5.010669s
           div:       9.879M (± 4.6%) i/s -     49.518M in   5.024084s
           iis:       9.289M (± 4.2%) i/s -     46.376M in   5.001639s

答案 2 :(得分:0)

以下是我的版本:如何使用gem https://github.com/igorkasyanchuk/execution_time

在Rails控制台中自动测量性能

它显示了您在请求期间已经看到的类似信息。

示例:

[METRICS] Completed in 908.3ms | Allocations: 2894 | ActiveRecord: 0.9ms (queries: 13)