Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Ruby

आंशिक प्रतिपादन में वास्तव में कितना समय लगता है?

मैंने कुछ लोगों से सुना है जो बड़े रेल विचारों को छोटे भागों में विभाजित करने के बारे में चिंतित हैं:आंशिक रूप से प्रस्तुत करने में वास्तव में कितना समय लगता है? क्या आंशिक कॉल करने का प्रदर्शन प्रभाव कोड पठनीयता में लाभ से अधिक होगा?

मैंने इनलाइन रेंडरिंग की तुलना में सरल आंशिक प्रतिपादन की तुलना में एक उदाहरण देने के लिए कुछ संख्याएँ चलाईं, इसलिए हम बाद में ट्रेडऑफ़ पर चर्चा कर सकते हैं। यह वह कोड है जिसका उपयोग मैं एक नए रेल ऐप में बेंचमार्क करने के लिए करता था (config.cache_classes = true के साथ) ):

app/views/test/show.html.erb
<% require 'benchmark'
   Benchmark.bmbm do |x|
     x.report "inline" do
       10000.times do -%>
         <p>Hello!</p>
    <% end
     end
     x.report "partial" do
       10000.times do -%>
         <%= render partial: "hello" %>
    <% end
     end-%>
<% end -%>
app/views/test/_hello.html.erb
<p>Hello!</p>

और परिणाम (2013 15 ”रेटिना मैकबुक प्रो पर रूबी 2.1 और रेल 4.0.2 का उपयोग करके):

Rehearsal -------------------------------------------
inline    0.010000   0.000000   0.010000 (  0.007045)
partial   0.970000   0.090000   1.060000 (  1.050433)
---------------------------------- total: 1.070000sec

              user     system      total        real
inline    0.010000   0.000000   0.010000 (  0.005529)
partial   0.920000   0.070000   0.990000 (  0.997491)

तो, एक तेज मशीन पर एक आंशिक रेंडर औसतन लगभग 0.1ms पर चलता है। यह इनलाइन रेंडर करने की तुलना में बहुत धीमा है, लेकिन इतना तेज़ है कि जब आपके पास URL जेनरेशन, रेल हेल्पर्स, और ब्राउज़र रेंडरिंग टाइम जैसी चीज़ें भी हों तो यह नोटिस करना मुश्किल होगा।

गति ही सब कुछ नहीं है

यदि आंशिक रूप से प्रस्तुत करने का प्रदर्शन बहुत खराब होता, तो भी शायद मैं विशाल विचारों को अलग करने का निर्णय लेता।

एक मुहावरा है, मेक इट वर्क, मेक इट राइट, मेक इट फास्ट। जब आप किसी ऐसे दृश्य को ठीक करने का प्रयास कर रहे हैं जो बहुत बड़ा है, तो आप "इसे काम करें" मोड से बाहर निकलने का प्रयास कर रहे हैं, और आप केवल "इसे तेज़ करें" पर नहीं जा सकते। आप अपने कोड को कम रखरखाव योग्य बना देंगे, और आप रिफैक्टरिंग के कुछ अवसर चूक सकते हैं, जिससे कैशिंग के अवसर पैदा हो सकते हैं, जिससे और भी बड़े प्रदर्शन लाभ हो सकते हैं।

जब तक आप माप नहीं लेंगे तब तक आपको पता नहीं चलेगा

आपको मेरे नंबरों पर विश्वास करने की जरूरत नहीं है। मैं अनुशंसा करता हूं कि आपने नहीं किया! रूबी की बेंचमार्क लाइब्रेरी आपको अपने स्वयं के बेंचमार्क चलाने के लिए कुछ सरल उपकरण देती है। आपके पूर्ण स्टैक को प्रोफाइल करने के लिए टूल भी हैं, जैसे न्यू रेलिक और मिनीप्रोफाइलर। मैं इन तीनों का नियमित रूप से अपने दैनिक कार्य में उपयोग करता हूं।

जब आप प्रोफाइल करते हैं, तो हमेशा प्रोडक्शन मोड में प्रोफाइल करें! रेल विकास पर्यावरण कक्षाओं और विचारों को ऑटो-रीलोड करता है, जो विकास करते समय उपयोगी होता है, लेकिन आपकी प्रदर्शन संख्या को मार देगा।


  1. विंडोज 10 की कीमत कितनी है?

    क्या आप Windows 10 . खरीदने की योजना बना रहे हैं? ? हमने यह मार्गदर्शिका तैयार की है ताकि आपको यह पता लगाने में मदद मिल सके कि विंडोज 10 की लागत कितनी है? विंडोज 10 प्रो अपग्रेड कीमत क्या है? और अगर आप कई कंप्यूटरों के लिए व्यवसाय खरीदना चाहते हैं, तो आपको नियमित उपयोग के लिए विंडोज 10 एंटरप्राइज की

  1. बैटरी स्वास्थ्य कितना मायने रखता है?

    स्मार्टफोन टेक सपोर्ट फोरम पर यूजर्स बैटरी की सेहत को लेकर लगातार चिंतित रहते हैं। 95-प्रतिशत या अधिक जैसे मापों पर चिंता करने वाली पोस्ट देखना असामान्य नहीं है। और यह स्वाभाविक और समझ में आता है:बैटरी की सेहत इस बात का एक साफ और विश्वसनीय संकेतक प्रतीत होता है कि आपकी बैटरी कैसे काम कर रही है, और ए

  1. आंशिक स्क्रीनशॉट कैसे लें

    मैन्युअल सीखें और विंडोज पीसी पर आंशिक स्क्रीनशॉट लेने के स्वचालित तरीके। हालाँकि, यदि आप स्क्रीनशॉट को एक साथ संपादित करना चाहते हैं, तो ट्वीकशॉट स्क्रीन कैप्चर का भी उपयोग करें। सॉफ्टवेयर आंशिक स्क्रीनशॉट लेने और उन्हें संपादित करने में भी मदद करता है। सूचना तेजी से बदल रही है, और प्रौद्योगिकी एक