加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

VB.Net XMLdocument内存管理

发布时间:2020-12-17 07:10:50 所属栏目:百科 来源:网络整理
导读:Dim docu As New XmlDocument()docu.load("C:bigfile.xml")Dim tempNode As XmlNodetempNode = docu.SelectSingleNode("/header/type")someArray(someIndex) = tempNode.innerText...do something more... 我正在使用XmlDocument()来加载一个巨大的XML文档(
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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读