C# linq到xml性能

C# linq到xml性能,c#,linq,linq-to-xml,C#,Linq,Linq To Xml,我听说LINQtoXML有一些性能问题,我的一些朋友建议我不要在我的应用程序中使用它。我在MSDN上找不到任何相关信息,我也不想依赖“某个互联网博客”。有人知道关于这个问题的官方观点或可靠的来源吗?只要谷歌linq vs xmlreader你就会知道了 最重要的结果是,它比xmlreader慢(当然,因为linq2Xml是在xmlreader之上构建的),但我认为它比可接受的要好得多,因为您获得了灵活性和更易于阅读/编码 检查并使用LINQ to XML将整个文件读入内存 如果您正在读取一个巨大

我听说LINQtoXML有一些性能问题,我的一些朋友建议我不要在我的应用程序中使用它。我在MSDN上找不到任何相关信息,我也不想依赖“某个互联网博客”。有人知道关于这个问题的官方观点或可靠的来源吗?

只要谷歌
linq vs xmlreader你就会知道了


最重要的结果是,它比xmlreader慢(当然,因为linq2Xml是在xmlreader之上构建的),但我认为它比可接受的要好得多,因为您获得了灵活性和更易于阅读/编码

检查并使用LINQ to XML将整个文件读入内存

如果您正在读取一个巨大的XML文件(数百兆字节),这就是一个问题。
相反,您可以使用原始XmlReader,它提供XML文件的正向视图,不会一次读取整个文件

如果您处理的是正常大小的XML文件,那么LINQ到XML就可以了

LINQ到XML比XmlReader容易使用几个数量级。

只有当您知道要处理200MB XML文件时,才应该使用XmlReader,或者,如果您已经衡量了自己的性能,并证明
XDocument
构造函数太慢了。

XPath和LINQ与XML的比较:相关:Microsoft提供了一些示例,说明如何使用LINQ to XML对XML文件的输入/输出进行流式处理,这样您就不会将整个文件加载到内存中,而只将其中的一小部分加载到内存中: