2012-11-14 2 views
8

가능하다면 어떤 정보도 찾을 수 없지만 유용 할 것입니다. rails console에있는 명령에서 메소드를 호출하고 모든 측정을 사용하여 성능을 결정할 수는 있지만 대부분 시간을두고 생각하고있었습니다.Ruby on Rails에서 콘솔의 명령 성능을 확인하는 방법이 있습니까?

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

이 같은 것이 있습니다 : 예를 들어

, 나는 빠른 이들 알아낼려고?

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

답변

16

있다! 레일즈도 필요하지 않습니다. 표준 라이브러리의 benchmark을보십시오. 샘플로

: 출력 (초)이 표시됩니다이다

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} } 

보고서 :

  • 사용자 CPU 시간.
  • 시스템 CPU 시간.
  • 사용자 및 시스템 CPU 시간의 합계입니다.
  • 경과 된 실시간 시간입니다. 다음과 같습니다

뭔가 :

0.350000 0.010000 0.360000 ( 0.436450) 
+0

전화는 콘솔이 실행 할 수 있습니까? 프로젝트 코드 자체가 아닌 애드혹 (ad-hoc) 형식의 항목을 실행하려고합니다. – perseverance

+0

@persistence : 예, 콘솔에서 바로 예제 코드를 실행할 수 있습니다. – pje

0

이 보석이 같은 https://github.com/igorkasyanchuk/benchmark_methods

더 이상 코드 :

이제
t = Time.now 
user.calculate_report 
puts Time.now - t 

당신이 할 수 있습니다

benchmark :calculate_report # in class 

그리고 당신의 방법

user.calculate_report 
관련 문제