【问题标题】:Linq performance: Which query is fasterLinq 性能:哪个查询更快
【发布时间】:2011-12-10 07:28:28
【问题描述】:

有谁知道哪个更高效/更快。什么是我自己测试的好方法,我没有大型 XML 文档(

XDocument doc = XDocument.Load(file);

doc.Root.Element("childNode").Value;

或

doc.Element("rootNode").Element("childNode").Value ;

另一个:

doc.Root.Elements("childNodes");

对比

doc.Element("rootNode).Elements("childNodes");

对比

doc.Element("rootNode").Descendants("childNodes"); 

对比

doc.Root.Descendants("childNodes") ;

比较时:

doc.XPathSelectElement("/xpath").Value

它是否比 DOM 方法更快,即

XMLDocument dom = new XMLDocument();
dom.LoadXml(input);
dom.SelectSingleNode("/xpath").Value 

【问题讨论】:

  • 您是否尝试过对它们进行基准测试?
  • 几乎不可能有人已经知道这个答案。自己测试一下吧!此外,后代与元素的性能高度依赖于 XML 文档的结构

标签: linq performance linq-to-xml


【解决方案1】:

您可以使用Stopwatch class 自己对此进行分析,或者如果它真的很重要,请查看 Ants Profiler 等工具,它会为您提供一些适当的指标。

【讨论】:

  • 自从我检查这个已经有一段时间了,无论如何以供将来参考,并帮助其他人 - 使用 XMLDocument 而不是 XDocument 明显慢。此外,在适用的情况下使用 XElement 而不是必须创建 XDocument 会更有效。上述查询的效率非常相似,只是 XML 结构略有不同。我没有机会针对非常大的 XML 进行测试。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-27
  • 1970-01-01
  • 1970-01-01
  • 2023-03-27
  • 1970-01-01
相关资源
最近更新 更多