दिलचस्प पोस्ट
SecItemAdd हमेशा त्रुटि -34018 आईओएस 10 सिम्युलेटर में Xcode 8 में देता है एकल WPF TextBlock में एकाधिक मानों को बाँध कैसे करें? AngularJS $ http.get अनुरोध को डेटा गुजर रहा है डेटा को अधिलेखित किए बिना किसी मौजूदा एक्सेल फ़ाइल को कैसे लिखना (पंडों का उपयोग करना)? PHP foreach पाश कुंजी मान प्रिंट <div id = "printarea"> </ div> केवल? हाइबरनेट के साथ एक PostgreSQL सरणी के मानचित्रण मोंगो डीबी: एक से कई संग्रहों से डेटा एकत्र करें..कैसे? पर – window.location.hash – बदलें? एचटीएमएल फॉर्म से पोस्ट करें और फ्लास्क व्यू में उन्हें एक्सेस करें प्रकार '…' में कोई कंसल्टर्स परिभाषित नहीं है हेडर और क्लाइंट लायबरी छोटे संस्करण बेमेल Node.js में पोस्ट अनुरोध का उपयोग करते हुए फ़ाइल अपलोड करना Internet Explorer 8 में "मार्जिन: 0 ऑटो;" का उपयोग करना आप jQuery में एक तत्व "फ्लैश" कैसे बनाते हैं

सीएलआर 4.0 में एकल ऑब्जेक्ट अभी भी 2 जीबी तक सीमित हैं?

जैसा कि मैं समझता हूं कि .NET में एकल उदाहरणों पर 2 जीबी की सीमा है। मैंने उस पर बहुत ध्यान नहीं दिया है क्योंकि मैं मुख्य रूप से 32 बिट ओएस पर काम कर रहा हूं। 32 पर, लेकिन वैसे भी एक कृत्रिम सीमा अधिक या कम है हालांकि, मुझे यह जानने में बहुत आश्चर्य हुआ कि यह सीमा 64 बिट । नेट पर भी लागू होती है

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

क्या किसी को पता है कि सीएलआर 4.0 में इस सीमा को संबोधित किया गया है (इस समय मेरे पास 4.0 स्थापना नहीं है)।

वेब के समाधान से एकत्रित समाधान "सीएलआर 4.0 में एकल ऑब्जेक्ट अभी भी 2 जीबी तक सीमित हैं?"

यह उस से भी बदतर है – आप प्रक्रिया की जगह है, जब आप 32 बिट में .NET में काम कर रहे हैं सैद्धांतिक सीमा से बहुत कम है 32 बिट। नेट एप्स में, मेरा अनुभव यह है कि आप मेमोरी उपयोग की लगभग 1.2-1.4 जीबी मेमोरी त्रुटियों से बाहर निकलने शुरू करते हैं (कुछ लोग कहते हैं कि वे 1.6 तक पहुंच सकते हैं … लेकिन मैंने कभी नहीं देखा )। बेशक, यह 64 बिट सिस्टम पर कोई समस्या नहीं है

कहा जा रहा है कि, संदर्भ प्रकारों की एक भी 2 जीबी सरणी, यहां तक ​​कि 64 बिट सिस्टम पर, वस्तुओं की एक बड़ी मात्रा है यहां तक ​​कि 8 बाइट संदर्भों के साथ, आपके पास 268,435,456 ऑब्जेक्ट संदर्भों की एक सरणी आवंटित करने की क्षमता है – जिनमें से प्रत्येक बहुत बड़ी हो सकते हैं (2 जीबी तक, और अधिक अगर वे नेस्टेड ऑब्जेक्ट्स का उपयोग कर रहे हैं)। यह अधिक स्मृति की तुलना में वास्तव में सबसे अधिक अनुप्रयोगों के लिए आवश्यक होगा।

सीएलआर टीम के सदस्यों में से एक ने इस बारे में ब्लॉग किया , इन सीमाओं के आसपास काम करने के तरीकों के लिए कुछ विकल्प एक 64 बिट सिस्टम पर, अपने BigArray <T> की तरह कुछ करना, किसी भी संख्या में ऑब्जेक्ट को सरणी में आवंटित करने के लिए एक सक्षम समाधान होगा – 2 जीबी एकल ऑब्जेक्ट सीमा से अधिक है पी / इंवोक भी आपको बड़ी सरणी आवंटित करने की अनुमति दे सकता है।


संपादित करें: मुझे इसका उल्लेख करना चाहिए था, साथ ही – मुझे विश्वास नहीं है कि इस व्यवहार को बिल्कुल भी नेट पर बदल दिया गया है। एनएटी की शुरुआत के बाद से व्यवहार अपरिवर्तित रहा है।


संपादित करें: .NET 4.5 में अब विकल्प x64 में स्पष्ट रूप से ऑब्जेक्ट्स को 2 जीबी से अधिक के लिए app.config में gcAllowVeryLargeObjects सेट करके अनुमति देंगी ।

.NET Framework 4.5 64 बिट प्लेटफ़ॉर्म पर 2GB से बड़ा एरे बनाने की अनुमति देता है यह सुविधा डिफ़ॉल्ट रूप से नहीं है, इसे gcAllowVeryLargeObjects तत्व का उपयोग कर config फाइल के माध्यम से सक्षम होना चाहिए।

http://msdn.microsoft.com/en-us/library/hh285054(v=vs.110).aspx

यह संख्यात्मक क्षेत्र में एक बड़ा सौदा है। .NET में संख्यात्मक कक्षा पुस्तकालयों का उपयोग करने वाले कोई भी उनके मैट्रिक्स को नीचे के एरे के रूप में संग्रहीत किया गया है। यह इतनी मूल लाइब्रेरी है जिसे नंबर क्रंचिंग करने के लिए कहा जा सकता है। 2 जीबी की सीमा गंभीर रूप से 64-बिट। नेट में मैट्रिक्स के आकार को रोकती है। और यहां पर