He escrito un código que carga un documento XML utilizando un objeto XmlDocument
para contar sus nodos. Aquí está el método:C#: el método close de Xml.Load (archivo)
XmlDocument xml = new XmlDocument();
xml.Load(textBox1.Text);
XmlNodeList nodes = xml.SelectNodes("//File");
foreach (XmlNode node in nodes)
{
number_of_childs++;
}
El problema que estoy enfrentando es, al importar un archivo de gran tamaño, se toma como 700 MB de RAM. Si luego trato de hacer alguna operación en el archivo, o incluso leer de él para mostrar sus datos en un ListView
, la aplicación toma como 2 GB de RAM. Entonces, me preguntaba, ¿hay algún método que cierre el XmlDocument
y libere su memoria, liberando la RAM? Es como si olvidara eliminar su contenido de la memoria.
Gracias por esa información, pero no funcionó, he aplicado su fragmento de código pero todavía se reserva la misma cantidad de memoria. –
@ R.Vector ver mi edición. –
Sí funcionó, pero el segundo paso de la aplicación es leer cada nodo y escribirlo en una vista de lista, por lo que todavía existe problema, pero ¿qué ocurre si puedo leer cada nodo del xml y liberarlo de la memoria cuando estaba almacenados con éxito en algún lugar <<< de esa manera sería mejor para la gestión de la memoria. –