visual studio - How to optimize .NET applications to 64-bit? -


में विजुअल स्टूडियो & gt; बिल्ड & gt; कॉन्फ़िगरेशन प्रबंधक आप लक्ष्य प्लेटफ़ॉर्म चुन सकते हैं।

यह क्या बदलता है?

क्या कोई दूसरा तरीका है कि मैं अपने .net ऐप का अनुकूलन कर सकता हूं जब x64 प्लेटफार्मों को लक्षित करता है? < / P>

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

हालांकि, यदि आप स्पष्ट रूप से अपने प्रोजेक्ट को एक्स 64 के साथ प्लेटफार्म लक्ष्य के रूप में स्थापित करने के लिए सेट करते हैं तो असेंबली अब x86 रनटाइम पर नहीं चलेंगे (और इसके विपरीत x 86 मंच लक्ष्य पर) यह केवल तब उपयोगी होता है जब आपके कोड में मूल x64 / x86 पुस्तकालयों जैसे कि प्रक्रिया में COM घटकों पर निर्भरता हो।

जैसा कि एक टिप्पणी में जोड़ा गया है, प्लेटफॉर्म लक्ष्य को अंतर्निहित के बीसीसी के साथ भ्रमित नहीं करना चाहिए ऑपरेटिंग सिस्टम। प्लेटफ़ॉर्म लक्ष्य के रूप में एक्स 86 के साथ एनएटी असेंबलियों को विंडोज़ के दोनों 32-बिट और 64-बिट संस्करणों पर चलना होगा (यानी 32-बिट प्रक्रिया को WOW64 मोड में)।

वास्तव में, प्लेटफॉर्म लक्ष्य सेटिंग का उपयोग करने के लिए शायद सबसे सामान्य परिदृश्य तब होता है जब आपके .NET विधानसभा में 32-बिट COM घटक का संदर्भ होता है। एक x64 सिस्टम पर विधानसभा को निष्पादित करने में सक्षम होने के लिए, विधानसभा को x 86 ध्वज के साथ संकलित किया जाना चाहिए। 64-बिट OS पर और कोई भी सीपीयू सेटिंग सक्षम होने पर, रनटाइम 64-बिट प्रक्रिया में असेंबली निष्पादित करेगी और 32-बिट COM घटक को 64-बिट प्रक्रिया में विफल हो जाएगा। X86 ध्वज के साथ कंपाइल करने से असेंबली को 32-बिट प्रक्रिया में निष्पादित करने के लिए .NET रनटाइम होता है और इस प्रकार COM घटक सुरक्षित रूप से लोड किया जा सकता है।


Comments

Popular posts from this blog

.net - C# List<T>.Find(x=>x.Rectangle.Contains(Point)) FAIL -

iphone - Smoothing a rounded stroke in Core Graphics -

c++ - QtQuick: QQmlApplicationEngine failed to load component qrc:/main.qml:23 Invalid attached object assignment -