Come ottenere il tempo di esecuzione nella console di rails?


104

Voglio confrontare il tempo di esecuzione Post.alle SELECT * FROM posts(o alcune altre istruzioni) Come posso ottenere il tempo di esecuzione di Post.all?

Risposte:


239
timing = Benchmark.measure { Post.all }

I vari attributi dell'oggetto restituito (Benchmark :: Tms) sono forniti qui .


5
Ho trovato molto utile questo post: caseyscarborough.com/blog/2013/07/22/…
hernanvicente

@Bohdan Sarebbe meglio aggiungere un'altra risposta o commento con riferimento alla gemma benchmark-ips? Hai apportato una modifica abbastanza grande alla risposta lì che la cambia in modo significativo e riduce piuttosto l'appropriatezza dei voti su di essa già.
Shadwell

@Bohdan Upvoted. Puoi sempre modificare anche la risposta accettata se la nuova risposta è diventata più appropriata.
Shadwell

4

Con gemma benchmark-ips :

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.