2010-12-07 15 views
10

दृश्य स्टूडियो में अप्रयुक्त का उपयोग कर बयानक्या नामस्थानों की संख्या प्रदर्शन को प्रभावित करती है?

using System; 
using System.Collections.Generic; 
using System.Configuration; 
using System.Data; 
using System.Drawing; 
using System.IO; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

वहाँ अप्रयुक्त usings होने के लिए एक प्रदर्शन हिट है दूर करने के लिए एक कमांड है?

+0

यहां तक ​​कि अगर वहाँ कोई प्रदर्शन हिट देखा जाता है, यह एक अच्छा विचार नहीं बनाता है। मुझे कक्षा के उपयोग को देखने से ज्यादा नफरत है और यह पता लगाना है कि यह किसके लिए है क्योंकि किसी ने सूर्य के नीचे हर नामस्थान का उपयोग किया है। –

+0

मुझे पता है कि आपका क्या मतलब है। हालांकि, हर कार्य को प्राथमिकता और योजनाबद्ध किया जाना चाहिए :)। –

उत्तर

7

कोड फ़ाइलों में उपयोग किए गए नामस्थानों की संख्या एप्लिकेशन के रनटाइम प्रदर्शन को प्रभावित नहीं करती है। इसका संकलन समय पर असर पड़ता है क्योंकि संकलक को उन नामस्थानों को अतिरिक्त वस्तुओं जैसे प्रकार और एक्सटेंशन विधियों के लिए खोजना होगा।

केवल क्रम प्रभाव नामस्थान की संख्या मैं के बारे में पता कर रहा हूँ

  • डिबगिंग हैं: किसी दिए गए कोड फ़ाइल में प्रयुक्त नामस्थान के सेट PDB में जमा हो जाती है और नाम संकल्प दौरान डिबगर द्वारा परामर्श कर रहा है। बहुत से नामस्थान होने से सैद्धांतिक रूप से डीबगर के प्रदर्शन पर असर पड़ सकता है लेकिन व्यवहार में मैंने यह एक समस्या नहीं देखी है।
  • Asp.Net: उपयोग में लाने मॉडल जहां पृष्ठों उपयोगकर्ताओं द्वारा पहली बार देखने पर संकलित किए जाते हैं, का उपयोग कर नामस्थान की संख्या लोड समय को प्रभावित कर सकते हैं पहली बार दिए गए पृष्ठ
+0

जब एएसपी.NET की बात आती है तो उपयोगकर्ता वैकल्पिक रूप से संकलित नहीं होते हैं जब उपयोगकर्ता रूट फ़ोल्डर में प्रवेश करता है? इसलिए, एक प्रदर्शन मारा? या मैं यहाँ से रास्ता हूँ? रेफरी: http://msdn.microsoft.com/en-us/library/ms178466.aspx –

+0

@ subt13 यह एएसपी.Net पृष्ठों के स्टार्टअप समय को प्रभावित करता है जो उपयोगकर्ता द्वारा पहले उपयोग पर संकलित किए जाते हैं। मैं उस परिदृश्य को जोड़ दूंगा। – JaredPar

+0

उत्कृष्ट। महान उत्तर/टिप्पणियां। –

1

मैंने हमेशा सोचा कि उन्हें कंपाइलर द्वारा हटा दिया गया था।

+0

वास्तव में, वे केवल कंपाइलर द्वारा उपयोग किया जाता है। रनटाइम पर, नामस्थान पूरी तरह से योग्य क्लास नामों का हिस्सा हैं। – codymanix

3

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

3

नहीं। संकलन समय पर कक्षा के नामों को हल करने के लिए नामस्थान का उपयोग किया जाता है। संकलन के बाद, आपकी असेंबली में केवल System.Collections.Generic.List<int> myList = new System.Collections.Generic.List<int>() जैसे पूर्ण योग्य वर्ग नाम शामिल हैं, सभी उपयोग समाप्त हो गए हैं।

1

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

0

मुझे यकीन है कि कहीं भी प्रदर्शन प्रदर्शन होता है (शायद संकलन के दौरान) लेकिन यह शायद नगण्य है। किसी भी तरह से, मैं उस कमांड को चलाने की अनुशंसा करता हूं - यह उस संभावित प्रदर्शन हिट को हटा देगा और आपके कोड को पढ़ने और बनाए रखने में आसान बना देगा। और यह इंटेलिजेंस से अप्रयुक्त नामों को हटा देगा, जिससे कोड को आसान बना दिया जा सकता है :)

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

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