क्या मैं जितना चाहूं आंशिक रूप से आंशिक उपयोग कर सकता हूं या क्या मुझे अपने विचारों को अधिक ट्रैफिक के तहत क्रॉल में लाने से बचने के लिए खुद को रोकना है?आंशिक एक महंगा ऑपरेशन बुला रहा है?
उत्तर
आंशिक उपयोग करके एक स्पष्ट ओवरहेड है लेकिन यह ऐसा कुछ नहीं है जिसके बारे में आपको शायद चिंता करनी चाहिए।
आंशिक फ़ाइलें हैं। जब आप आंशिक के बिना कोई कार्रवाई प्रस्तुत करते हैं, तो आपकी कार्रवाई "लागत" 1 फ़ाइल (जो पूरी तरह से सच नहीं है, लेकिन यह स्पष्टीकरण को सरल बनाना है)। यदि आपकी कार्रवाई 4 आंशिक रूप से प्रस्तुत करती है, तो आप 5 की लागत के साथ समाप्त होते हैं। इसका मतलब है कि आपके पास 4 अतिरिक्त आईओ कॉल हैं और प्रत्येक कॉल के लिए वास्तविक लागत आपके सर्वर लोड, सर्वर प्रदर्शन आदि पर निर्भर करती है।
लेकिन क्या यह लागत मायने रखती है? मेरे अनुभव में, 99% बार नहीं। यह भी ध्यान देने योग्य, कोड पठनीयता और रखरखाव के मामले में आंशिक उपयोग करने के लाभ आमतौर पर पसंद के लायक हैं।
यदि प्रदर्शन एक महत्वपूर्ण विशेषता होनी चाहिए, तो आपको शायद कहीं और गति और सुधार की तलाश करनी चाहिए।
याद रखें: रूबी एक सुपर-फास्ट प्रोग्रामिंग भाषा नहीं है और कोड अभिव्यक्ति हमेशा प्रदर्शन के पक्ष में पहली जगह लेती है। रेल इस टीम के लिए पूरी तरह से सहमत हैं, हालांकि रेल टीम ने हमेशा प्रदर्शन पर ध्यान केंद्रित किया है (और रेल 3 यह व्यावहारिक प्रदर्शन है हमेशा सुधार के लिए जगह है)
यह कहा गया है कि आप सुरक्षित रूप से आंशिक रूप से उपयोग कर सकते हैं और कुछ चालाक के साथ एप्लिकेशन ओवरहेड को कम कर सकते हैं कैशिंग तंत्र। उदाहरण के लिए, आप cache
ब्लॉक में संग्रह प्रतिपादन स्थानांतरित कर सकते हैं ताकि एक संग्रह संग्रह कथन केवल एक बार निष्पादित किया जाएगा, तो आपका ऐप 10 अन-कैश किए गए आंशिक के बजाय 1 कैश फ़ाइल लोड करेगा।
शुरुआत में कई बार चुने गए सबसे चुपके त्रुटियों में से एक गलत तरीके से प्रदर्शन के बारे में चिंता करना था, जो वास्तव में बेंचमार्क चलाने के बिना था। मुझे एक बार याद है जब मैं एक हार्ड कोडेड हैश के पक्ष में एक एकल डेटाबेस क्वेरी छोड़ने की कोशिश कर रहा था क्योंकि "क्वेरी लागत", बिना किसी बेवकूफ पूछताछ के एक अन्य बेवकूफ क्वेरी थी जिसमें शामिल कथन के बिना एक संपूर्ण टेबल संग्रह लोड हो रहा था, जिसके परिणामस्वरूप दूसरी क्वेरी 3 गुना धीमी गति से चल रहा है।
तो, यदि आप वास्तव में प्रदर्शन की परवाह करते हैं, तो आपको शायद आंशिक उपयोग करने से बचना नहीं चाहिए, बल्कि इसके बजाय सुनिश्चित करें कि आप अन्य सभी सुविधाओं का लाभ उठा रहे हैं रेल आपको अपने आवेदन को स्केल करने के लिए प्रदान करता है।
यह उत्तर है –
- 1. एक महंगा ऑपरेशन कास्टिंग कर रहा है?
- 2. फ़ाइल है। एक महंगा ऑपरेशन करता है?
- 3. PHP में file_exist() एक बहुत महंगा ऑपरेशन है?
- 4. एक std :: सूची महंगा लौट रहा है?
- 5. मोंगोडब में सस्ते/महंगा क्या ऑपरेशन हैं?
- 6. एक अन्य डीएओ से एक डीएओ को बुला रहा है?
- 7. एएसपी.नेट एमवीसी: अद्यतन मॉडल एक "महंगा" ऑपरेशन (प्रतिबिंब के कारण) है?
- 8. XMLDocument है। एक परमाणु ऑपरेशन बचाओ?
- 9. क्या class.getName() महंगा है?
- 10. एक रिलेवेटलाइट लाइनरलायआउट से अधिक महंगा है?
- 11. अस्थिर महंगा है?
- 12. मेरे आंशिक दृश्य में पैरामीटर गुजर रहा है?
- 13. कितना महंगा है Thread.getStackTrace()?
- 14. बुला समारोह एक समारोह
- 15. एक "शून्य" संदर्भ (यानी कोई ग्राहक नहीं है) पर एक विस्तार विधि बुला रहा है बुराई?
- 16. क्रोम/सफारी कुछ मामलों में अनलोड नहीं बुला रहा है
- 17. एक परमाणु ऑपरेशन पर्याप्त है
- 18. अंदर नए धागे को बुला रहा है कन्स्ट्रक्टर
- 19. पायथन से उद्देश्य सी कार्यों को बुला रहा है?
- 20. .NET प्रतिबिंब कितना महंगा है?
- 21. स्प्रिंग एमवीसी, एक नियंत्रक के अंदर से एक और नियंत्रक को बुला रहा है
- 22. SQLite CASE कथन महंगा है?
- 23. ऑब्जेक्ट कास्टिंग कितना महंगा है?
- 24. एक आंशिक
- 25. कैसे बुला एक विधि सी #
- 26. जब बुला जारी रहती है
- 27. ड्रॉ कॉल महंगा क्यों हैं?
- 28. आंशिक फ़ंक्शन डिज़ाइन अक्षम है?
- 29. उपयोगकर्ता ऑपरेशन "वर्कस्पेस बिल्डिंग" की प्रतीक्षा कर रहा है
- 30. एक विधि के भीतर से बुला विधि नाम प्राप्त कर रहा है
स्पष्ट रूप से कुछ ओवरहेड है, लेकिन मैंने जो कुछ भी देखा है वह आंशिक के साथ सारण करने के पक्ष में है। मैं उम्मीद कर रहा हूं कि लोग क्या जानते हैं कि वे इसका जवाब क्या दे रहे हैं। महान प्रश्न के लिए +1। –
आम तौर पर, मैं कहूंगा "जितना चाहें उतना उपयोग करें।" लेकिन यह वास्तव में इस बात पर निर्भर करता है कि आपके विशेष आंशिक रूप से प्रस्तुत करने में कितना समय लगता है। यदि आपका विकास लॉग पूंछ ('tail -f log/development.log') और एक पृष्ठ लोड करें, तो आप देखेंगे कि प्रत्येक आंशिक रूप से प्रस्तुत करने में कितना समय लगता है। यदि एक या अधिक रेंडर करने में धीमा है, तो इसे तेज करने या इसे कैश करने का एक तरीका ढूंढें। अन्यथा, कोई चिंता नहीं। –