2009-07-08 7 views
12

जैसा कि this question/comments में उल्लिखित है 32 बिट .NET से 64 बिट .NET तक जाने पर कुछ नुकसान हैं।64 बिट .NET के पेशेवर/विपक्ष क्या हैं?

शायद 64 बिट दुनिया में सबसे बड़ा प्रक्रिया पता स्थान है, लेकिन अन्य पेशेवरों और विपक्ष क्या ध्यान देने योग्य हैं?

उत्तर

6

मैंने कुछ कंप्यूटेशनल-भारी (संख्या-क्रंचिंग) अनुप्रयोगों के लिए इसे ध्यान से तेज (~ 4x मेरे अनुभव में) देखा है। सबसे अच्छी बात यह है कि यह शुद्ध प्रबंधित मामलों में मुफ्त में आता है। लाभ पाने के लिए आपको कुछ भी पुनः संयोजित करने की आवश्यकता नहीं है। साथ ही, मैंने सुना है कि x64 जेआईटी में अधिक आक्रामक अनुकूलन हैं।

शायद सबसे बड़ा नुकसान प्रक्रिया में 32-बिट COM घटकों को लोड करने में सक्षम नहीं है।

5

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

http://blogs.msdn.com/b/joshwil/archive/2006/07/18/670090.aspx

यह एक पढ़ने लायक है। यह पुराना है (.NET 2.0) लेकिन अभी भी बहुत कुछ लागू होता है; सूचक आकार, COM इंटरॉप आदि:

Migrating 32-bit Managed Code to 64-bit

यह भी जानते हुए भी कि यहां तक ​​कि 64 पर CLR 2GB की एक वस्तु आकार प्रतिबंध है लायक है। यह 99% परिदृश्यों के लिए कोई मुद्दा नहीं है, लेकिन यदि आप x64 पर जा रहे हैं तो संभवतः ऐसा इसलिए है क्योंकि आप बड़े डेटा सेट के साथ काम कर रहे हैं। यहाँ और अधिक चर्चा के लिए देखें:

Are C# Strings (and other .NET API's) limited to 2GB in size?

So. जब तक आपका एप्लिकेशन उस डेटा का उपयोग नहीं करता है जो 32 बिट मेमोरी में फिट नहीं होता है या 64 बिट ऑपरेशंस का भारी उपयोग करता है, तो कोई सुधार होने पर आपको अधिक दिखाई नहीं दे सकता है।

अन्य नकारात्मक पक्ष यह x64 अनुप्रयोगों के लिए दृश्य स्टूडियो कुछ सीमाएँ हैं कि:

  • संपादित करें और जारी रखें 64-बिट डिबगिंग के लिए उपलब्ध नहीं है।

  • आप मिश्रित मोड में डीबग नहीं कर सकते हैं, देशी कोड से प्रबंधित कोड से, या इसके विपरीत, 64-बिट कोड में।

देखें: http://msdn.microsoft.com/en-us/library/ms184681(VS.80).aspx

नोट: 64 बिट सी ++ compilers डिफ़ॉल्ट रूप से स्थापित नहीं कर रहे हैं। आपको इंस्टॉल के दौरान उन्हें चुनना होगा।

मुझे यह भी मिला (क्योंकि मैं स्वयं x64 एप्लिकेशन को अनुकूलित कर रहा हूं)।

"Porting और अनुकूलन AMD64 के लिए पर 64-बिट Windows अनुप्रयोग ..."

http://download.microsoft.com/download/5/b/5/5b5bec17-ea71-4653-9539-204a672f11cf/AMD64_PortApp.doc

संकलक स्विच और तरह पर अच्छा संकेत के बहुत सारे है।

+2

"64 बिट कंपाइलर डिफ़ॉल्ट रूप से स्थापित नहीं हैं": ओपी .NET अनुप्रयोगों के बारे में बात कर रहा है। यह देशी सी ++ कंपाइलर के लिए केवल सत्य है, न कि VB.NET/C# के लिए। –

+0

यह एक साइड नोट था। मैंने इसे ऊपर स्पष्ट किया है। –

1

64 बिट ऐप्स हमेशा 32 बिट से अधिक तेजी से नहीं चलेंगे। वार्ता नीचे दो ब्लॉग पोस्ट इसके बारे में:
http://blogs.msdn.com/rmbyers/archive/2009/06/08/anycpu-exes-are-usually-more-trouble-then-they-re-worth.aspx

बड़ा संकेत अधिक स्मृति और कैश की खपत, और सीपीयू उपलब्ध कैश का बाइट की संख्या का मतलब है 32-बिट और 64 के लिए एक ही है -बिट प्रक्रियाएं।

http://blogs.msdn.com/ricom/archive/2009/06/10/visual-studio-why-is-there-no-64-bit-version.aspx

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

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