性能:XDocument与XmlDocument

Cod*_*313 18 .net xml performance xmldocument linq-to-xml

现在,我意识到此前提出过这类问题(特别是这个 - 我认为这是对两个对象的非常好的描述).我的问题更多是围绕表现.我有几个XML文档,大小超过100 - 300 K. 我注意到将这些信息加载到一个XDocument而不是一个XmlDocument对象时会有一些延迟.这两个对象之间是否存在严重的性能差异?他们是否以不同方式访问XML的内容?使用XML字符串时,这是首选的,或者是有区别的.这些对象的最终用途是XPath在有问题的对象上运行查询(或LINQ,取决于).

同样,这主要是性能问题,涉及内存和速度.

小智 20

XmlDocument是文档对象模型的纯粹托管实现.没有任何COM组件的互操作,例如MSXML库.否则,任何索赔都是完全虚假的.通过在.NET Framework中引入LINQ,整个XLinq API集成为一种更友好的XML交互方式.

如果您正在尝试最大化性能并且习惯使用XPath,请尝试使用XmlDocument并使用已编译的XPath表达式.

  • LINQ并没有神奇地改善性能.这也不是LINQ的目标 - 目标是提高程序员的工作效率,如果您已经了解LINQ并且您不了解框架提供的"旧"XML API,则可能会这样做. (2认同)

naw*_*fal 5

XmlReader是.NET中最低的API,.NET中的所有其他XML API都在幕后使用.当然,这意味着它是最难处理的,也是最快的.它是一个流API,因此它最适合内存.

之间XmlDocumentXDocument又名的LINQ to XML,这里有一些原始数据:http://blogs.msdn.com/b/codejunkie/archive/2008/10/08/xmldocument-vs-xelement-performance.aspx

两者都发现XDocument课程更快/更有效.程序员的生产力/效率也不应该被忽视.就个人而言,我发现它更容易使用XDocument.