दिलचस्प पोस्ट
जावास्क्रिप्ट में लांग प्रेस? सर्वश्रेष्ठ सी ++ कोड फॉर्मेटर / श्वेतफ़ीयर कैसे जांचें कि क्या अजगर मॉड्यूल इसे आयात किए बिना मौजूद है मैं जावा में वर्तमान तारीख को एक महीने कैसे जोड़ूं? जीएमएम एसएमटीपी सर्वर से कनेक्ट होने के लिए जवामेल का उपयोग पोर्ट निर्दिष्ट करता है और 25 का इस्तेमाल करने की कोशिश करता है mysql_config नहीं मिला जब mysqldb अजगर इंटरफ़ेस को स्थापित करना किसी डेटा को पुन: आकार देने के लिए उचित / तेज़ तरीका पटरियों पर सीखना रूबी HttpServletRequest यूआरएल को पूरा करने के लिए प्रो Xcode डेवलपर आईडी तैयार पीकेजी जैसे ओएस एक्स इंस्टालर पैकेज बनाना जावा में जीमेल एसएमटीपी सर्वर के जरिए ईमेल भेजना जावास्क्रिप्ट में HTTP अनुरोध प्राप्त है? ब्राउजर बनाने के लिए जावास्क्रिप्ट पर क्लिक करें पिछली पृष्ठ पर वापस जाएं? क्या मीडिया प्रश्नों को स्क्रीन के बजाय एक div तत्व के आधार पर आकार बदल सकता है? अलग ऊंचाई के कॉलम के साथ बूटस्ट्रैप पंक्ति

अधिकतम आकार जो एक सरणी को पकड़ सकता है?

सी # 2008 में, अधिकतम आकार जो एक सरणी को पकड़ सकता है?

वेब के समाधान से एकत्रित समाधान "अधिकतम आकार जो एक सरणी को पकड़ सकता है?"

System.Int32.MaxValue 

यह मानते हुए कि आप System.ArraySystem.Array , यानी किसी भी सामान्य रूप से परिभाषित सरणी ( int[] , आदि) यह सरणी को पकड़ने वाली अधिकतम संख्या है। प्रत्येक मूल्य का आकार केवल उन्हें रखने के लिए उपलब्ध स्मृति या वर्चुअल मेमोरी के द्वारा सीमित होता है।

यह सीमा लागू की गई है क्योंकि System.Array एक Int32 का उपयोग करता है क्योंकि यह इंडेक्सर है, इसलिए केवल Int32 वैध मानों का उपयोग किया जा सकता है। इसके ऊपर, केवल सकारात्मक मान (यानी, >= 0 ) का उपयोग किया जा सकता है इसका अर्थ है कि किसी सरणी के आकार पर पूर्ण अधिकतम ऊपरी सीमा एक Int32 मानों पर पूर्ण अधिकतम ऊपरी है, जो कि Int32.MaxValue में उपलब्ध है और 2 ^ 31 या लगभग 2 अरब के बराबर है।

पूरी तरह से अलग नोट पर, यदि आप इस बारे में चिंता कर रहे हैं, तो संभवतः आप डेटा के बहुत सारे उपयोग कर रहे हैं, या तो सही या गलत तरीके से। इस मामले में, मैं एक सरणी के बजाय एक List<T> का उपयोग करने की कोशिश करूँगा, ताकि आप जितना आवश्यक हो उतना मेमोरी का उपयोग कर सकें। दरअसल, मैं एक List<T> या किसी अन्य सामान्य संग्रह प्रकारों का उपयोग हर समय करना चाहूंगा। इसका मतलब यह है कि जितनी ज्यादा मेमोरी आप वास्तव में उपयोग कर रहे हैं, उसे आवंटित किया जाएगा, लेकिन आप इसे अपने सामान्य ऐरे जैसे उपयोग कर सकते हैं।

नोट का दूसरा संग्रह Dictionary<int, T> जिसे आप एक सामान्य सरणी के रूप में भी इस्तेमाल कर सकते हैं, लेकिन केवल कम से कम आबादी होगी उदाहरण के लिए, निम्नलिखित कोड में, केवल एक तत्व बनाया जाएगा, 1000 की बजाय कि एक अरै बनाई जाएगी:

 Dictionary<int, string> foo = new Dictionary<int, string>(); foo[1000] = "Hello world!"; Console.WriteLine(foo[1000]); 

Dictionary का उपयोग करने से आपको सूचक का प्रकार नियंत्रित करने देता है, और आपको नकारात्मक मानों का उपयोग करने की अनुमति मिलती है। निरपेक्ष अधिकतम आकार के Dictionary<ulong, T> सरणी के लिए आप एक Dictionary<ulong, T> उपयोग कर सकते हैं, जो संभवतः आप के बारे में अधिक संभावित तत्व प्रदान कर सकते हैं

प्रति एमएसडीएन यह है

डिफ़ॉल्ट रूप से, एक अर्रे का अधिकतम आकार 2 गीगाबाइट (जीबी) है।

64-बिट परिवेश में, आप रन-टाइम वातावरण में जीसीएलोवविरलैज ऑब्जेक्ट कॉन्फ़िगरेशन एलीमेंट के सक्षम एट्रिब्यूट को सेट करके आकार प्रतिबंध से बच सकते हैं

हालांकि, सरणी अभी भी कुल 4 अरब तत्वों तक सीमित रहेंगी।

यहां देखें http://msdn.microsoft.com/en-us/library/System.Array(v=vs.110).aspx

नोट: यहां मैं मानता हूं कि हमारे पास पर्याप्त हार्डवेयर रैम होगा, यह मानकर मैं सरणी की वास्तविक लंबाई पर ध्यान केंद्रित कर रहा हूं।

यह उत्तर .NET 4.5 के बारे में है

एमएसडीएन के अनुसार , बाइट्स की सरणी का सूचक 2147483591 से अधिक नहीं हो सकता है। 4.5 से पहले एनएटी के लिए यह एक सरणी के लिए स्मृति सीमा भी थी। .NET 4.5 में यह अधिकतम समान है, लेकिन अन्य प्रकारों के लिए यह 2146435071 तक हो सकता है।

यह चित्रण के लिए कोड है:

  static void Main(string[] args) { // ----------------------------------------------- // Pre .NET 4.5 or gcAllowVeryLargeObjects unset const int twoGig = 2147483591; // magic number from .NET var type = typeof(int); // type to use var size = Marshal.SizeOf(type); // type size var num = twoGig / size; // max element count var arr20 = Array.CreateInstance(type, num); var arr21 = new byte[num]; // ----------------------------------------------- // .NET 4.5 with x64 and gcAllowVeryLargeObjects set var arr451 = new byte[2147483591]; var arr452 = Array.CreateInstance(typeof(int), 2146435071); var arr453 = new byte[2146435071]; // another magic number return; } 

यहां आपके प्रश्न का उत्तर है जो विस्तार में आता है: http://www.velocityreviews.com/forums/t372598-maximum-size-of-byte-array.html

आप का उल्लेख करना चाहते हैं कि आपके द्वारा उपयोग किए जा रहे एनएटी के संस्करण और आपकी मेमोरी आकार।

आप अपने आवेदन के लिए, 2 जी में फंस जाएंगे, हालांकि सीमा, इसलिए यह आपकी सरणी में है पर निर्भर करता है।

चूंकि लंबाई एक पूर्णांक है I int कहना है। MaxValue

मुझे लगता है कि अगर आप वीएम पर विचार नहीं करते हैं, तो यह पूर्णांक है। मैक्सवैल्यू

मुझे लगता है कि यह आपकी रैम (या शायद वर्चुअल मेमरी) स्पेस से जुड़ा हुआ है और आपके ओएस वर्जन (जैसे 32 बिट या 64 बिट) के लिए पूर्ण प्रतिबन्धित अधिकतम