निर्देशन के उपयोग से अप्रयुक्त से प्रदर्शन कैसे प्रभावित होता है?


110

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

विजुअल स्टूडियो में "अप्रयुक्त usings को हटाने" की उपयोगी सुविधा है।

मुझे आश्चर्य है कि यदि प्रोग्राम के प्रदर्शन पर कोई नकारात्मक प्रभाव पड़ता है यदि उपयोग किए गए कथन जो कभी एक्सेस नहीं किए जाते हैं, तो फ़ाइल के शीर्ष पर उल्लिखित रहें।


मैंने पूछने से पहले इसकी खोज की, और यह नहीं दिखा।
KdgDev

6
FWIW, इस पोस्टिंग में बेहतर SEO है: यह मेरे लिए Google में पहला परिणाम था। लिंक किए गए 2 मूल में से एक अनुपलब्ध है (हटा दिया गया है) और दूसरे को इस पद के लिए कुछ मूल्य जोड़ने के लिए पर्याप्त रूप से शब्दांकित किया गया है, भले ही पुनर्निर्देशन के रूप में।
19

@DaveD आपके लिए सबसे पहले क्योंकि Google आपकी सटीक प्राथमिकताओं और खोज इतिहास को जानता है। मेरे दोस्त के कंप्यूटर में पहले नहीं था।
इलियास इलियाडिस

जवाबों:


133

एक अप्रयुक्त उपयोग से आपके एप्लिकेशन के रनटाइम प्रदर्शन पर कोई प्रभाव नहीं पड़ता है।

यह आईडीई के प्रदर्शन और समग्र संकलन चरण को प्रभावित कर सकता है। इसका कारण यह है कि यह एक अतिरिक्त नाम स्थान बनाता है जिसमें नाम समाधान होना चाहिए। हालांकि ये मामूली होते हैं और अधिकांश परिदृश्यों के लिए आपके IDE अनुभव पर ध्यान देने योग्य प्रभाव नहीं होना चाहिए।

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


38
वहाँ अधिक usings हैं, धीमी Intellisense होगा
Riegardt Steyn

14

नहीं, यह सिर्फ संकलन-समय / कोडिंग शैली की चीज़ है। .NET बायनेरीज़ हुड के तहत पूरी तरह से योग्य नामों का उपयोग करते हैं।


3
इसका मतलब यह है कि लंबे समय तक वर्ग और विधि के नाम का JIT संकलन समय पर एक छोटा लेकिन वास्तविक (यदि अथाह) प्रभाव है?
जेरेड अपडेटाइक

8

निष्पादन की गति पर कोई प्रभाव नहीं है, लेकिन संकलन गति / अंतर्मुखता पर कुछ मामूली प्रभाव हो सकता है क्योंकि उचित वर्ग की खोज करने के लिए अधिक संभावित नाम स्थान हैं। मैं इसके बारे में बहुत ज्यादा चिंता नहीं करता, लेकिन आप उपयोग बयानों को हटाने और क्रमबद्ध करने के लिए व्यवस्थित Usings मेनू आइटम का उपयोग कर सकते हैं।


8

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

नीचे लिंक से कुछ अंश दिए गए हैं:

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

  2. किसी भी अप्रयुक्त संदर्भ को हटाने का एक और लाभ यह है कि आप नामस्थान के साथ संघर्ष के जोखिम को कम कर देंगे। उदाहरण के लिए, यदि आपके पास System.Drawingऔर System.Web.UI.WebControlsसंदर्भित दोनों हैं, तो आप पा सकते हैं कि Imageकक्षा को संदर्भित करने का प्रयास करते समय आपको संघर्ष हो सकता है । यदि आप अपनी कक्षा में इन संदर्भों से मेल खाने वाले निर्देशों का उपयोग कर रहे हैं, तो संकलक यह नहीं बता सकता है कि किनका उपयोग करना है। यदि आप नियमित रूप से विकसित करते समय स्वत: पूर्ण का उपयोग करते हैं, तो अप्रयुक्त नाम स्थान को हटाने से आपके पाठ संपादक में स्वतः पूर्णता मानों की संख्या कम हो जाएगी जैसा कि आप लिखते हैं।


5

नहीं, एक कार्यक्रम को संकलित करते समय कई प्रक्रियाएं शामिल होती हैं। जब कंपाइलर संदर्भों (वर्गों, विधियों) की तलाश शुरू करता है, तो यह कोड पर उपयोग किए गए केवल का उपयोग करेगा। उपयोग करने वाला निर्देश केवल संकलक को बताता है कि कहां देखना है। बहुत से अप्रयुक्त कथन का उपयोग प्रदर्शन के मुद्दे पर हो सकता है लेकिन संकलन के समय हो सकता है। रनटाइम के दौरान, सभी बाहरी कोड बाइनरी के हिस्से के रूप में ठीक से जुड़े या शामिल किए जाते हैं।


5

कोड जो निष्पादित नहीं करता है, किसी कार्यक्रम के प्रदर्शन को प्रभावित नहीं करता है।

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