How to get execution time in rails console?

SqlRuby on-RailsTimeConsole

Sql Problem Overview


I want compare time of execution Post.all and SELECT * FROM posts (or some other statements) How can i get execution time of Post.all ?

Sql Solutions


Solution 1 - Sql

timing = Benchmark.measure { Post.all }

The various attributes of the object returned (Benchmark::Tms) are provided here.

Solution 2 - Sql

With 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

Solution 3 - Sql

Here is my version of how to measure performance automatically in rails console using gem: https://github.com/igorkasyanchuk/execution_time

It's showing similar information which you already see during requests.

Sample:

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

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionBohdanView Question on Stackoverflow
Solution 1 - SqlShadwellView Answer on Stackoverflow
Solution 2 - SqlBohdanView Answer on Stackoverflow
Solution 3 - SqlIgor KasyanchukView Answer on Stackoverflow