2009-06-29 82 views
0

因此,我從一個非常大的Web應用程序中獲取了一個特定的熱點,它執行了大量XML處理(添加節點,基於某些邏輯向節點添加屬性),然後,創建一個獨立的測試來模擬使用LINQ到XML(相對於的XmlDocument)Linq to XML性能 - 獨立測試vs非常大的Web應用程序

有在獨立測試比較的LINQ要使用的XmlDocument XML 2至10倍的性能改進了同樣的情況。

現在對Web應用程序進行了相同的更改,但性能和內存都沒有顯示出改進 - 完全可以看出,與使用XmlDocument幾乎相同。所有其他因素/代碼在前後都是一樣的,所以確保沒有其他變化。

除了併發 - web請求,我不知道爲什麼會發生這種情況。

任何建議,將不勝感激。 是否有其他人遇到類似的行爲?

[測試在Windows XP上運行和Windows Server 2003運行.NET Framework 3.5]

更新:我也已經說沒有參與此磁盤IO。 XML是在內存中構建的,並且不會寫回到文件或任何東西。它僅用於傳遞給期望它的另一個外部系統。外部系統在前後不變。

回答

1

你需要比較蘋果和蘋果。

  • 不要將Web + XmlDoc與StandAlone + LinqXml進行比較。
  • 將StandAlone + XmlDoc與StandAlone + LinqXml進行比較。
+0

我認爲他已經做了StandAlone + XmlDoc到StandAlone + LinqXml的比較,並獲得了「2到10倍的性能改進。」然後做了Web + XmlDoc到Web + LinqXml的比較,並沒有看到任何改進。那麼現在,爲什麼StandAlone + LinqXml比Web + LinqXml更好? – CoderDennis 2009-06-29 17:53:46

0

我的猜測是,磁盤訪問是在XML解析由磁盤訪問被掩蓋的方式,Web服務器的方法等的任何收益的主要瓶頸。但是,這是一個猜測。