2009-02-17 9 views
7

Using Namespace; अधिक मेमोरी का उपभोग करता है?क्या 'नेमस्पेस का उपयोग करना' है, और अधिक स्मृति का उपभोग करें?

मैं वर्तमान में मोबाइल एप्लिकेशन पर काम कर रहा हूं और मैं उत्सुक था कि कक्षाओं के निर्माण के दौरान दृश्य स्टूडियो स्थानों पर बयान के उपयोग से अनचाहे लोग मेरे आवेदन को चलाने के लिए कुछ अतिरिक्त मेमोरी की आवश्यकता होती है।

उत्तर

13

इसे आसान बनाने के लिए: नहीं।

उन कथनों का अनुवाद आईएल के किसी भी रूप में नहीं किया जाता है। वे पूरी तरह से योग्य प्रकार के नाम (बदसूरत!) का उपयोग करने से बचने के लिए शॉर्टकट हैं। लेकिन, यदि आप VS2008 और/या R # का उपयोग कर रहे हैं तो आप अप्रयुक्त लोगों को स्वचालित रूप से हटा सकते हैं।

+0

स्वचालित रूप से, अच्छा एक। – tafa

1

नहीं, यह केवल संकलक एक छोटा सा धीमी चलाने :)

5

नेमस्पेस एक संकलन समय सी # है कि आप विकास के दौरान समय की बचत करने की अनुमति के ही विशेषता है कर देगा। using निर्देशों का उपयोग आपके कोड में शॉर्टेंड टाइप नामों को देखने के लिए कंपाइलर द्वारा किया जाता है।

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

एक बार जब आप नामस्थान संकलित कर लेते हैं और using निर्देश चलाए जाते हैं क्योंकि आईएल को उनकी आवश्यकता नहीं होती है।

0

ऐसा नहीं है। इसका उपयोग किया जाता है ताकि आपको उस वस्तु को परिभाषित करने की आवश्यकता न हो जिसे आप अपने पूर्ण नाम से उपयोग कर रहे हैं। System.IO.File के बजाए आप सिस्टम.आईओ का उपयोग कर रहे हैं तो आप फ़ाइल कर सकते हैं।

यह स्मृति में तब तक लोड नहीं होता है जब तक कि आप वास्तव में ऑब्जेक्ट नहीं बनाते। सी ++ के विपरीत पूरी लाइब्रेरी आयात नहीं की जाती है, क्योंकि .NET Framework लक्ष्य मशीन पर स्थापित है और जीएसी में लोड किया गया है, और आपका कस्टम .dll एप्लिकेशन फ़ोल्डर के बिन फ़ोल्डर में हैं।

2

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

StringBuilder

के रूप में नाम स्थान से योग्य प्रकार नाम करने का विरोध किया:

System.Text.StringBuilder

फ़ाइल जहां में उपयोग कथन घोषित किया गया है।

3

यदि "स्मृति" से आपका मतलब है "मुझे याद रखना होगा कि मैंने शीर्ष पर शीर्ष पर बयान का उपयोग क्यों किया है" तो हाँ।

लेकिन, इसका अर्थ यह नहीं है कि आपका मतलब है। .NET असेंबली आम तौर पर ऑन-डिमांड लोड होते हैं, इसलिए आपको अतिरिक्त बयानों के साथ कोई प्रदर्शन जुर्माना नहीं लगेगा। हालांकि, रखरखाव के लिए, आप उन्हें हटाना चाहते हैं।

+1

डेवलपर के सिर में होने वाली 'आउटऑफमेमरी अपवाद' को कभी कम मत समझें। – bzlm

+0

+1 अच्छा सादृश्य –

3

यहां इस संदर्भ में "उपयोग" कीवर्ड पर माइक्रोसॉफ्ट जानकारी है: http://msdn.microsoft.com/en-us/library/sf0df423.aspx। यह मूल रूप से एक असेंबली पर पूरी तरह से योग्य नाम का उपयोग करने का विकल्प प्रदान करता है, लेकिन यह वास्तव में उस विशेष कीवर्ड के साथ स्मृति में असेंबली आयात या शामिल नहीं करता है।

संबंधित मुद्दे