1
我在使用XmlDocument處理大量xml文件時遇到了嚴重的麻煩。這個想法是從大約5000個.xml文檔(每個大約20 MB)中提取某些數據,這些數據以文本格式保存,然後導入到MySQL DB中。這項任務應該是每天完成的。使用c#XmlDocument加載多個xml文件導致內存泄漏
我的問題是,處理完每個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
.............
}
任何想法可能是什麼問題?爲什麼垃圾收集沒有完成?
非常感謝您提前!
非常感謝,Sinatr!你是完全正確的。這是功能中的其他內容。我不應該責怪GC這個問題;) – Ivaylo 2013-02-21 18:43:47