2013-02-17 7 views
6

Tworzę ciężki skrypt, który analizuję i przechowuję dane i naprawdę potrzebuję wiedzieć, które linie mojego kodu pochłaniają większość czasu. Czy Rubymine ma funkcje profilera, czy może jest możliwe dodanie do niego profilera?profiler w rubyminie

Odpowiedz

2

Szukałem tego również, ale bez powodzenia. Jeśli coś znajdziesz, daj mi znać.

... W międzyczasie Sam Ruby istnieją dwa moduły, które mogą Ci pomóc

Benchmarkhttp://apidock.com/ruby/Benchmark

Robisz coś takiego

require 'benchmark' 

n = 50000 
Benchmark.bm(7) do |x| 
    x.report("for:") { for i in 1..n; a = "1"; end } 
    x.report("times:") { n.times do ; a = "1"; end } 
    x.report("upto:") { 1.upto(n) do ; a = "1"; end } 
end 

i to daje ładny tabela wyników profilowania

   user  system  total  real 
for:  1.050000 0.000000 1.050000 ( 0.503462) 
times: 1.533333 0.016667 1.550000 ( 0.735473) 
upto: 1.500000 0.016667 1.516667 ( 0.711239) 

Profiler__http://apidock.com/ruby/Profiler__

Najprostszym sposobem korzystania z tego modułu jest tylko require 'profile' i po wykończenie skryptu to zdmuchnąć dane o każdym połączeniu.

Sprawdź ten przykład: http://ruby.about.com/od/advancedruby/a/profile.htm