Я хочу сравнить время выполнения Post.all
и SELECT * FROM posts
(или некоторые другие операторы). Как я могу получить время выполнения Post.all
?
Как получить время выполнения в консоли rails?
Ответ 1
timing = Benchmark.measure { Post.all }
Различные атрибуты возвращаемого объекта (Benchmark :: Tms) представлены здесь.
Ответ 2
С 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