2009-01-23 7 views
7

विजुअल स्टूडियो 2008 में एक विकल्प "ऑप्टिमाइज़ कोड" है जो शायद/अनुकूलन विकल्प से मेल खाता है। यह कभी भी सक्षम नहीं होता है, यहां तक ​​कि "रिलीज" मोड में भी नहीं।मुझे अपने सी # कोड को संकलित करने के लिए स्विच/ऑप्टिमाइज़ स्विच का उपयोग क्यों नहीं करना चाहिए?

मुझे यह विकल्प क्यों नहीं चाहिए कि यह विकल्प हमेशा सक्षम हो?

उत्तर

9

रिलीज बिल्ड के लिए यह प्रति डिफ़ॉल्ट पर है (शायद आपने रिलीज बिल्ड के लिए सेटिंग्स बदल दी हैं?)। डीबगिंग को आसान बनाने के लिए इसे बंद करें। रिलीज कोड के लिए, इसे चालू करें।

+0

हम्म, अनजाने में इसे बंद कर दिया होगा। इसे फिर से टिकेगा: पी –

7

कोड ऑप्टिमाइज़ेशन सी # 3 में बहुत अच्छा रहा है - यह बहुत चालाक प्रदर्शन tweaks करता है जो आपके कोड को आईएल में बहुत अधिक बदल सकता है।

कुछ obfuscation उपकरण (और ILMerge जैसे कुछ अन्य आईएल उपकरण) कभी-कभी अनुकूलन के साथ असेंबली तोड़ सकते हैं। जितना अधिक आईएल टूल्स आप अधिक संभावना का उपयोग करते हैं, आपको ऑप्टिमाइज़ेशन के साथ गंभीर समस्याएं मिलती हैं।

इसके अलावा @Brian Rasmussen पहले से ही कहा (+1) - आप रिलीज के लिए इसे डिबगिंग के लिए बंद करना चाहते हैं।

3

यह स्पष्ट करने के लिए, ऑप्टिमाइज़ेशन इनलाइन फ़ंक्शंस करता है और कुछ चर को खत्म करता है। अनुकूलित कोड डीबग करते समय, आपको सामान्य रूप से आईडीई द्वारा उतनी मदद नहीं मिलेगी, क्योंकि वास्तव में कुछ कोड मौजूद नहीं हैं। तो डीबगिंग के लिए, बंद करें (डिफ़ॉल्ट) बंद करें।

कभी-कभी (अक्सर) सी ++ अनुकूलन जैसी भाषाओं में महत्वपूर्ण दुष्प्रभाव होता है जिसे विचार करने की आवश्यकता होती है। जहां तक ​​मुझे पता है, यह सी # के मामले में नहीं है या नहीं, इसलिए आपके कोड की शुद्धता के बिंदु से, इससे कोई फर्क नहीं पड़ता कि आप अनुकूलित करते हैं या नहीं।

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