VB.Net XMLdocument内存管理

前端之家收集整理的这篇文章主要介绍了VB.Net XMLdocument内存管理前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
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相关文章