मुझे तारों की एक बड़ी सूची बनाने और इसे स्मृति में रखने की आवश्यकता है, हालांकि इसे एक आउटऑफमेमरी अपवाद को फेंक दिया गया है। संसाधन मॉनिटर के अनुसार मेरे पास अभी भी 1 जीबी मेमोरी उपलब्ध है। मुझे this KB article समस्या को संबोधित करने के लिए मिला, लेकिन ऐसा लगता है कि इसे फ्रेमवर्क 1.1 एसपी 1 (मैं 3.5 एसपी 1 का उपयोग कर रहा हूं) में तय किया जाना चाहिए था।आउटऑफमेमरी एक्सेप्शन फेंक दिया गया है जबकि स्मृति अभी भी उपलब्ध है
क्या कोई दृश्यों के पीछे क्या होता है इस पर कुछ प्रकाश डाल सकता है? क्या .NET फ्रेमवर्क सीमित करता है कि एक ही प्रक्रिया (32 बिट सिस्टम पर) द्वारा कितनी मेमोरी का उपयोग किया जा सकता है? यदि ऐसा है तो मैं देख सकता हूं कि क्यों, लेकिन यह समझ में नहीं आता है कि एप्लिकेशन केवल 1.6 जीबी का उपयोग कर रहा है और अभी भी ~ 1 जीबी सिस्टम को छोड़ दिया गया है।
मैं एक सूची है (। हाँ, मैं कुछ और ही इस्तेमाल कर सकते हैं, लेकिन मैं अभी सही प्रोटोटाइप रहा हूँ), मैं उत्पन्न: -
संपादित करें जो लोग यहां से पूछा के लिए कुछ और में गहराई से जानकारी है एक Guid.NewGuid()। ToString() करके एक यादृच्छिक स्ट्रिंग, और इसे सूची में फेंक दें। जो मैं करने की कोशिश कर रहा हूं वह कई वस्तुओं के साथ एक सूची उत्पन्न करता है जैसा कि मैं इसमें फिट कर सकता हूं, और एक विशिष्ट को देखने के विभिन्न तरीकों का परीक्षण कर सकता हूं। मेरा पहला अनुमान था कि कुछ विखंडन चल रहा है, लेकिन मैंने नीचे दिए गए कोड को छोड़कर सबकुछ गिरा दिया, और यह अभी भी होता है। मुझे नहीं लगता कि यह छोटा स्निपेट बहुत विखंडन पैदा कर सकता है, लेकिन शायद मैं गलत हूं।
List<string> blah = new List<string>();
for (int i = 0; i < 50000000; i++)
{
blah.Add(Guid.NewGuid().ToString());
}
क्या आप आउटऑफमेमरी अपवाद को मार रहे हैं, जहां आप एक कोड स्निपेट प्रदान कर सकते हैं? –
आप किस डेटा संरचना का उपयोग कर रहे हैं? सूची? –
RichardOD