VB.Net中如何优化XMLDocument的内存使用?

2026-05-06 13:131阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计351个文字,预计阅读时间需要2分钟。

VB.Net中如何优化XMLDocument的内存使用?

我正在使用XmlDocument来加载一个巨大的XML文件,并尝试获取根节点下`header/type`路径的节点。以下是简化后的代码内容:

plaintextDim docu As New XmlDocumentdocu.Load(C:\bigfile.xml)Dim tempNode As XmlNodetempNode=docu.SelectSingleNode(/header/type)someArray(someIndex)=tempNode.InnerText...进行更多操作...

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.

本文共计351个文字,预计阅读时间需要2分钟。

VB.Net中如何优化XMLDocument的内存使用?

我正在使用XmlDocument来加载一个巨大的XML文件,并尝试获取根节点下`header/type`路径的节点。以下是简化后的代码内容:

plaintextDim docu As New XmlDocumentdocu.Load(C:\bigfile.xml)Dim tempNode As XmlNodetempNode=docu.SelectSingleNode(/header/type)someArray(someIndex)=tempNode.InnerText...进行更多操作...

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.