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

रेल्स पार्शियल रेंडरिंग के प्रदर्शन लागत का आकलन

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

मैंने कुछ संख्याएँ चलाईं ताकि एक उदाहरण दे सकूं कि कैसे सरल पार्शियल रेंडरिंग इनलाइन रेंडरिंग की तुलना करती है, ताकि हम बाद में ट्रेडऑफ पर चर्चा कर सकें। ये वो कोड है जिसका उपयोग मैंने बेंचमार्क के लिए किया, एक बिल्कुल नए रेल्स ऐप में (with 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>

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

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. Windows 10 की कीमत कितनी है? Windows 10 की कीमत कितनी है?

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

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

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

  1. Windows पर आंशिक स्क्रीनशॉट कैप्चर और संपादित करें: त्वरित मैनुअल और स्वचालित तरीके Windows पर आंशिक स्क्रीनशॉट कैप्चर और संपादित करें: त्वरित मैनुअल और स्वचालित तरीके

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