2009-06-29 28 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服务器的方法等的任何收益的主要瓶颈。但是,这是一个猜测。