我正在尝试使用XmlReader类读取(相对)大型xml文件时获得最大性能。
以下是我当前(工作)代码的概述:
let reader = XmlReader.Create(stream)
while reader.Read() do
if reader.NodeType = XmlNodeType.Element && reader.Name = "dimension" then
()
elif reader.NodeType = XmlNodeType.Element && reader.Name = "c" then
target <- reader.GetAttribute("r") |> Address.Parse
use subReader = reader.ReadSubtree()
while subReader.Read() do
if subReader.NodeType = XmlNodeType.Element && subReader.Name = "f" then
()
elif subReader.NodeType = XmlNodeType.Element && subReader.Name = "v" then
()
我担心的是subReader
对象的分配在我的性能分析中出现占用了大量的时间,我想知道是否有更高效的方法来实现同样的事情 - 即阅读两个简单/非递归元素&#34; f&#34;和&#34; v&#34;在当前节点处进入某种数据结构以供后续解析。