Tôi đã viết một số mã tải một tài liệu XML sử dụng một đối tượng XmlDocument
để đếm các nút của nó. Đây là phương pháp:C#: phương pháp đóng của Xml.Load (tập tin)
XmlDocument xml = new XmlDocument();
xml.Load(textBox1.Text);
XmlNodeList nodes = xml.SelectNodes("//File");
foreach (XmlNode node in nodes)
{
number_of_childs++;
}
Vấn đề mà tôi đang gặp phải là khi nhập một tệp lớn, phải mất 700MB RAM. Nếu sau đó tôi cố gắng thực hiện một số thao tác trên tệp, hoặc thậm chí đọc từ nó để hiển thị dữ liệu của nó trong một ListView
, ứng dụng sẽ mất khoảng 2GB RAM. Vì vậy, tôi đã tự hỏi, là có một phương pháp đóng XmlDocument
và giải phóng bộ nhớ của nó, phát hành RAM. Nó giống như nó quên mất nội dung của nó khỏi bộ nhớ.
Cảm ơn bạn đã cung cấp thông tin đó, nhưng nó không hoạt động, tôi đã áp dụng đoạn mã của bạn nhưng nó vẫn giữ lại cùng một lượng bộ nhớ. –
@ R.Vector xem chỉnh sửa của tôi. –
Đúng vậy, nhưng bước thứ hai của ứng dụng là đọc mọi nút và nhập nó vào một listview, vì vậy vấn đề vẫn tồn tại, nhưng nếu tôi có thể đọc từng nút của xml và giải phóng không gian của nó khỏi bộ nhớ khi nó lưu trữ thành công một nơi nào đó <<< theo cách đó sẽ tốt hơn cho việc quản lý bộ nhớ. –