我在使用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
.............
}
任何想法可能是什么问题?为什么垃圾收集没有完成?
非常感谢您!