2012-11-14 7 views
8

यदि यह संभव था तो मुझे कोई जानकारी नहीं मिली लेकिन यह उपयोगी होगा कि मैं rails console में कमांड पर एक विधि कॉल कर सकता हूं और किसी भी माप का उपयोग करके प्रदर्शन निर्धारित कर सकता हूं लेकिन मैं ज्यादातर समय के बारे में सोच रहा था।क्या रूबी ऑन रेल में कंसोल में कमांड के प्रदर्शन की जांच करने का कोई तरीका है?

[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 समय का योग।
  • विलुप्त वास्तविक समय।

कोई चीज जो इस तरह दिखता है:

0.350000 0.010000 0.360000 ( 0.436450) 
+0

फोन यह कंसोल में इस चलाने के लिए संभव है? मैं प्रोजेक्ट कोड में जरूरी नहीं है कि विज्ञापन-प्रकार की सामग्री को चलाने के लिए जरूरी है। – perseverance

+0

@ प्रेरणा: हाँ, आप कंसोल से उस उदाहरण कोड को चला सकते हैं। – 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 
संबंधित मुद्दे