2012-11-14 7 views
8

Nie mogłem znaleźć żadnych informacji na ten temat, gdyby było to możliwe, ale byłoby użyteczne, abym mógł wywołać metodę na komendzie w rails console i określić wydajność za pomocą dowolnego pomiaru, ale głównie myślałem o czasie.Czy istnieje sposób sprawdzenia wydajności polecenia w konsoli w Ruby on Rails?

Na przykład, próbuję dowiedzieć się, który z nich jest szybsza:

[val2,val3,val4,val5,val6].find{|x| x != val1} 
[val2,val3,val4,val5,val6].all?{|x| x == val1} 

Czy istnieje coś takiego?

[val2,val3,val4,val5,val6].find{|x| x != val1}.performance 

Odpowiedz

16

Istnieje! I nie potrzebujesz nawet Railsów. Zajrzyj do benchmark ze standardowej biblioteki.

Jako próbki:

require 'benchmark' 

puts Benchmark.measure { [val2,val3,val4,val5,val6].find{|x| x != val1} } 
puts Benchmark.measure { [val2,val3,val4,val5,val6].all?{|x| x == val1} } 

Raport, który jest wyprowadzany pokaże (w sekundach):

  • użytkownika czasu procesora.
  • Czas procesora systemu.
  • Suma czasu procesora użytkownika i systemu.
  • Upływający czas rzeczywisty.

Coś, co wygląda tak:

0.350000 0.010000 0.360000 ( 0.436450) 
+0

Czy to możliwe, aby uruchomić to w konsoli? Chcę uruchamiać pliki typu ad-hoc niekoniecznie w samym kodzie projektu. – perseverance

+0

@persistence: tak, możesz uruchomić ten przykładowy kod bezpośrednio z konsoli. – pje