के पुनर्लेखन के लिए अवसर, होगा यह देखते हुए मैं, लेकिन वैसे भी, कोड यह खड़ा के रूप में:मैंने सूची <string> के साथ आउटऑफमेमरी अपवाद को मारा - क्या यह सीमा है या क्या मुझे कुछ याद आ रही है?
List<string> foobar;
फिर हम foobar के तार का एक समूह जोड़ें।
गिनती = 16777216 पर, हमने स्मृति सीमा से बाहर मारा।
मेरी समझ यह है कि प्रत्येक स्ट्रिंग एक अलग आकार होगी। वास्तव में डेटा (मेरा डेटा नहीं) को देखते हुए, अधिकांश 2 या 3 वर्ण होते हैं।
what is the max limit of data into list in c#? इंगित करता है कि अधिकतम सीमा है:
हालांकितत्वों है कि सूची की वर्तमान कार्यान्वयन में संग्रहित किया जा सकता की अधिकतम संख्या, है सैद्धांतिक रूप से, Int32.MaxValue - बस 2 अरब से अधिक।
:
CLR का वर्तमान Microsoft कार्यान्वयन में एक 2GB अधिकतम ऑब्जेक्ट आकार सीमा नहीं है। मेरे पास है, क्या, 16 लाख परिणामों में कुछ बाइट्स * (यह संभव है कि अन्य कार्यान्वयन, उदाहरण मोनो के लिए, इस प्रतिबंध की जरूरत नहीं है है।)
मेरे उदाहरण में,? टास्क मैनेजर एक गिग के इस्तेमाल के बारे में दिखाता है, लेकिन मेरे पास 8 गीगा रैम है।
16777216 (2^24) एक निश्चित विशिष्ट मूल्य की तरह लगता है - संदिग्ध रूप से एक सीमा की तरह, लेकिन मुझे कोई भी दस्तावेज नहीं मिला है) इसे वापस या बी) इसके चारों ओर एक रास्ता खोजें?
किसी भी मदद की सराहना की जाएगी।
कुछ कोड:
List<string> returnList = new List<string>();
SqlDataReader dr; // executes a read on a database, have removed that part as that bit works fine
if (dr.HasRows)
{
while (dr.Read())
{
returnList.Add(dr.GetString(0).Trim());
}
}
है कि सरलीकृत रूप, मैं अब यह OOM अपवाद के लिए कुछ ट्राई/कैच है, लेकिन यह वास्तविक कोड है कि मुझे दु: ख दे रहा है।
क्या आप हमें अपना कोड दिखा सकते हैं? –
हीप आकार रैम आकार से अलग है, रैम का एक हिस्सा ढेर के रूप में प्रयोग किया जाता है, जिसका उपयोग ऑब्जेक्ट्स को स्टोर करने के लिए किया जाता है। http://stackoverflow.com/questions/2325370/c-sharp-increase-heap-size-is-it- संभावित – CjCoax
@ जोनस्केट - कुछ स्निपेट के साथ अपडेट किया गया है, अगर मुझे कुछ और चाहिए तो मुझे बताएं। –