मुझे कुछ बड़ी एक्सएमएल फाइलें मिली हैं, 1+ जीबी। मुझे उनके साथ कुछ फ़िल्टरिंग ऑपरेशन करने की ज़रूरत है। सबसे आसान विचार मैं ले कर आए हैं उन्हें txt और उन लोगों से ReadAllText के रूप में बचाने के लिए, और इस समय मुझे लगता है कि, हालांकि, कार्यक्रम स्मृति से बाहर दुर्घटनाओं करने की कोशिश की तरहसी # में आउटऑफमेमरी अपवाद कैसे प्राप्त करें?
var a = File.ReadAllText("file path");
a = a.Replace("<", "\r\n<");
कुछ कार्यों कर शुरू करने के लिए है। मैंने इसे चलाने के दौरान अपने टास्क मैनेजर को देखा है और राम का उपयोग 50% तक पहुंच गया है और जिस क्षण यह पहुंचता है, कार्यक्रम मर जाता है।
क्या किसी के पास इस फ़ाइल के साथ आउटऑफमेमरी अपवाद से परहेज करने या प्रोग्राम को अधिक मेमोरी खींचने की अनुमति देने के बारे में कोई विचार है।
स्ट्रिंग का उपयोग न करें, स्ट्रिंग नहीं। –
प्रतिस्थापन "फ़िल्टरिंग" है, या यह कुछ और है? ['XmlReader'] पर एक नज़र डालें (https://msdn.microsoft.com/en-us/library/system.xml.xmlreader (v = vs.110) .aspx), वैसे भी। (मुझे लगता है कि यह सही है।) – Ryan
सामान्य रूप से, एक्सएमएल को "केवल स्ट्रिंग्स" के रूप में इलाज करने से बचें। जितना संभव हो सके एक्सएमएल के साथ काम करने के लिए * डिज़ाइन * का उपयोग करें, जब तक कि आप जो उत्पादन करने की कोशिश कर रहे हैं वह एक्सएमएल नहीं है, लेकिन "ऐसा कुछ है जो एक्सएमएल जैसा दिखता है लेकिन मैं इसके लिए अजीब चीजें कर रहा हूं जैसे कि यह तकनीकी रूप से नहीं है एक्सएमएल अब और अधिक " –