Mam kilka dużych plików xml, 1+ gb. Muszę wykonać z nimi pewne operacje filtrowania. Najprostszym pomysłem Mam wymyślić to, aby zapisać je jako txt i ReadAllText z nich i zacząć robić pewne operacje jakJak obejść wyjątek OutOfMemory w języku C#?
var a = File.ReadAllText("file path");
a = a.Replace("<", "\r\n<");
chwili, kiedy starają się zrobić, jednak awarie programu z pamięci. Sprawdziłem mojego menadżera zadań, gdy go uruchomiłem, a użycie pamięci RAM wzrosło do 50% iw chwili, gdy do niego dotrze program zginął.
Czy ktoś ma jakieś pomysły na temat działania z tym plikiem, unikając wyjątku OutOfMemory lub pozwalając programowi pobrać więcej pamięci.
Używaj strumieni, a nie ciągów. –
Czy wymiana jest "filtrowaniem", czy jest czymś innym? Spójrz na ['XmlReader'] (https://msdn.microsoft.com/en-us/library/system.xml.xmlreader (v = vs.110) .aspx), tak czy inaczej. (Myślę, że to właściwy.) – Ryan
Ogólnie rzecz biorąc, staraj się * unikać * traktowania XML jako "tylko ciągi". Użyj narzędzi * zaprojektowanych * do pracy z XML w maksymalnym możliwym stopniu, chyba że to, co próbujesz wyprodukować, nie jest XML, ale jest "czymś, co wygląda jak XML, ale robię dla niego dziwne rzeczy, tak że nie jest technicznie XML więcej " –