xml解析的空间和时间估计

本文关键字:时间 空间 xml | 更新日期: 2023-09-27 17:50:32

我必须开发一个函数,它将采取字符串(xml字符串)作为输入并返回解析结果(在对象格式)。

我是c# .Net的新手,所以从net中我发现有很多方法可以做到这一点:

  1. Xml序列化
  2. Xml TextReader
  3. XmlDocument
  4. XDocument(等等)

我想知道哪种方式更好(在时间和空间方面)考虑到每秒这个函数必须解析一个和平均10-20个字符串(平均1000-2000个字符)

xml解析的空间和时间估计

XmlTextReader逐行检查文件,因此它可以处理非常大的文件,当您不需要解析整个xml时非常有用。

XmlDocument在加载文件时构建一个DOM,这很容易浏览,尽管在大xml文件上非常耗时。

对于您计划处理的数据量,使用什么并不重要。编写运行良好/看起来不错的代码,然后进行测量——如果你估计每秒约40K是合理的,那么你不可能在所有方法之间找到任何可测量的差异。

xmlserialization是最容易使用的,如果可以选择XML格式,则需要最少的代码。XmlDocument和XDocument是XmlReader之上的更高层次的概念,所以如果您正在寻找最高速度的原始XmlReader将为您提供最多的选择。

就用MSXML。概述和测量性能,然后决定是否需要替代解决方案。

using MSXML;
DOMDocument30 doc = new DOMDocument30();
doc.async = false;
if (doc.load("somefile.xml"))
{
  // process document here
}

一旦你有了一些具体的测量,你就可以开始查看信息了,比如在这篇msdn文章中,但你可能发现这根本没有必要。