LINQ to XML 性能

7

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


XPath和LINQ to XML的比较:http://msdn.microsoft.com/zh-cn/library/bb675156.aspx - Kris Ivanov
相关:https://dev59.com/IWYr5IYBdhLWcg3wB1-h - nawfal
3个回答

13

使用LINQ to XML将会把整个文件读入内存。

如果你要读取一个巨大的XML文件(数百兆字节),这将是一个问题。
相反,你可以使用原始的XmlReader,它提供了一个XML文件的前向只读视图,并且不会一次性读取整个文件。

如果你处理的是普通大小的XML文件,那么LINQ to XML就可以了。

LINQ to XML比XmlReader容易使用几个数量级。
只有当你知道你将要处理200MB的XML文件,或者你已经测量过性能并证明XDocument构造函数太慢时,才应该使用XmlReader。


8
微软提供了使用Linq to Xml流式传输输入/输出xml文件的示例,以便您不会将整个文件加载到内存中,而只需加载其中的小块:http://msdn.microsoft.com/en-us/library/system.xml.linq.xstreamingelement.aspx#Y1392 - Michael

7

4

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接