2011-06-27 153 views
2

有誰知道哪個更高效/更快。我自己測試這種方法的好方法是什麼,我沒有大的XML文檔(< 500 KB,不知道這是大還是小),但我必須在代碼中重複寫這些語句,所以想知道這是更好/最優的。Linq性能:哪個查詢更快

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 
+2

你有沒有嘗試過對它們進行基準測試? –

+0

任何人都不可能知道這個答案。只是測試你的自我!子孫對元素的性能高度依賴於XML文檔的結構 – ColinE

回答

2

您可以使用此配置文件自行Stopwatch class,或者如果是的話非常重要的是,研究諸如螞蟻分析器這樣的工具,它會給你一些適當的指標。

+0

過了一段時間,因爲我檢查了這一點,無論如何以備將來參考,並幫助其他人 - 使用XMLDocument而不是XDocument顯着更慢。此外,在適用的情況下使用XElement,而不必創建XDocument更高效。上述查詢的效率非常相似,XML結構略有不同。我沒有機會測試顯着大的XML。 –