Dim docu As New XmlDocument()
docu.load("C:\bigfile.xml")
Dim tempNode As XmlNode
tempNode = docu.SelectSingleNode("/header/type")
someArray(someIndex) = tempNode.innerText
...do something more...
我正在使用 XmlDocument()
加载一个巨大的 XML
文档 (100~300MB)
当我打开文档并将其作为字符串
读取时,我的应用程序使用大约900MB RAM。
我想知道为什么会发生这种情况以及如何预防它?
请注意:即使 XmlDocument
也没有 Dispose()
来删除分配的内容。
虽然我在应用程序的后面部分需要巨大 XML 文件的整个字符串,但 /header/type.innerText
只是一个单词
更多来源:
Private Sub setInfo(ByVal notePath As String)
Dim _NOTE As XDocument
_NOTE = XDocument.Load(notePath)
If (From node In _NOTE...<title> Select node).Value = "" Then
lvlist.Items.Add("No Title")
Else
lvlist.Items.Add((From node In _NOTE...<title> Select node).Value)
End If
lvlist.Items(lvlist.Items.Count - 1).SubItems.Add((From node In _NOTE...<group> Select node).Count)
End Sub
它读取 XML 文档、计算标签数量并检索字符串值。就这样。 获得这些值后,_NOTE (XDocument) 此时就没用了。
最佳答案
XmlReader可能会解决您的需求。来自 MSDN:
Represents a reader that provides fast, noncached, forward-only access to XML data.
关于VB.Net XML文档内存管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21916443/