【发布时间】:2013-02-21 12:36:00
【问题描述】:
我在使用 XmlDocument 处理大量 xml 文件时遇到了严重的问题。这个想法是从大约 5000 个 .xml 文档(每个大约 20 MB)中提取一定的数据,这些数据以文本格式保存,然后导入 MySQL DB。这个任务应该每天都完成。
我的问题是处理完每个xml文件后,系统内存并没有释放它。所以,所有的文档都堆积如山,直到所有的 RAM 都被占用并且应用程序开始运行非常缓慢(一旦硬盘驱动器开始帮助系统内存)。
我正在使用已经创建的源代码,因此无法更改为 XmlReader 等其他类,所以我被 XmlDocument 卡住了。
xml加载函数调用如下:
foreach (string s in xmlFileNames)
{
i++;
if (mytest.LoadXml(s))
mytest.loadToExchangeTables();
}
函数如下所示:
public bool LoadXml(string fileName)
{
XmlDocument myXml = new XmlDocument();
myXml.Load(fileName);
.............
//searching for needed data
.............
}
任何想法可能是什么问题?以及为什么没有完成垃圾收集?
非常感谢您!
【问题讨论】:
标签: c# memory-leaks xmldocument