xmlElement vs xmlNode对内存的影响

时间:2016-06-15 13:59:27

标签: xml vb.net memory

我正在执行一个大型过程,该过程解析XML文件,多次查找某些属性。

当我分析整个过程时,我意识到 for 循环每个循环消耗2MB RAM内存,它为整个过程占用大约3GB RAM,根据我们的目标效率太低。那是代码:

        For Each element As XmlElement In xDoc.SelectSingleNode("/disk")
            If element.Name = "object" Then
                If objectIdentifier = element.GetElementsByTagName("objectIdentifier").Item(0).InnerText Then
                    XMLObject_fileName = element.GetElementsByTagName("XMLObject_fileName").Item(0).InnerText
                    Exit For
                End If
            End If
        Next

这是我看到代码使用XmlElement类进行解析的时候。我通常只使用xmlNode类,所以我决定改变它,只是为了测试。当我执行此更改时,进程只会#34;只花了1GB的RAM内存。

这是新代码:

        For Each element As XmlNode In xDoc.SelectSingleNode("/disk")
            If element.Name = "object" Then
                If objectIdentifier = element.SelectNodes("objectIdentifier").Item(0).InnerText Then
                    XMLObject_fileName = element.SelectNodes("XMLObject_fileName").Item(0).InnerText
                    Exit For
                End If
            End If
        Next

所以,我的问题是:为什么会出现这种差异?有谁知道这些类如何使用内存?

感谢您的回答。

0 个答案:

没有答案