रेल कंसोल में निष्पादन समय कैसे प्राप्त करें?


104

मैं निष्पादन के समय की तुलना करना चाहता हूं Post.allऔर SELECT * FROM posts(या कुछ अन्य कथन) मैं निष्पादन का समय कैसे प्राप्त कर सकता हूं Post.all?

जवाबों:


239
timing = Benchmark.measure { Post.all }

लौटी हुई वस्तु के विभिन्न गुण (बेंचमार्क :: टीएमएस) यहां दिए गए हैं


5
मैंने इस पोस्ट को बहुत उपयोगी पाया है: Caseyscarborough.com/blog/2013/07/22/…
hernanvicente

@ बोधन क्या बेंचमार्क-आइप्स मणि के संदर्भ में एक और उत्तर या टिप्पणी जोड़ना बेहतर होगा? आपने वहां उत्तर के लिए एक बड़ा संपादन किया है जो इसे महत्वपूर्ण रूप से बदलता है और पहले से ही इस पर वोटों की उपयुक्तता को कम करता है।
Shadwell

@ बोहदन अपवित्र। आप हमेशा स्वीकार किए गए उत्तर को बदल सकते हैं, भले ही नया उत्तर अधिक उपयुक्त हो गया हो।
Shadwell

4

साथ बेंचमार्क-आईपीएस मणि:

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

0

मणि का उपयोग करके रेल कंसोल में प्रदर्शन को स्वचालित रूप से मापने का मेरा संस्करण यहां है: https://github.com/igorkasyanchuk/execution_time

यह ऐसी ही जानकारी दिखा रहा है, जिसे आप पहले ही अनुरोधों के दौरान देख चुके हैं।

नमूना:

[METRICS] Completed in 908.3ms | Allocations: 2894 | ActiveRecord: 0.9ms (queries: 13)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.