我听说LINQ to XML存在一些性能问题,我的一些朋友建议我不要在我的应用程序中使用它。我在MSDN上找不到任何相关的内容,也不想依赖于“某个互联网博客”。有没有人知道官方对这个问题的观点或一些可靠的来源?
我听说LINQ to XML存在一些性能问题,我的一些朋友建议我不要在我的应用程序中使用它。我在MSDN上找不到任何相关的内容,也不想依赖于“某个互联网博客”。有没有人知道官方对这个问题的观点或一些可靠的来源?
使用LINQ to XML将会把整个文件读入内存。
如果你要读取一个巨大的XML文件(数百兆字节),这将是一个问题。
相反,你可以使用原始的XmlReader,它提供了一个XML文件的前向只读视图,并且不会一次性读取整个文件。
如果你处理的是普通大小的XML文件,那么LINQ to XML就可以了。
LINQ to XML比XmlReader容易使用几个数量级。
只有当你知道你将要处理200MB的XML文件,或者你已经测量过性能并证明XDocument
构造函数太慢时,才应该使用XmlReader。
只需谷歌搜索 linq vs xmlreader
,便能得到结果。
排名最靠前的结果是http://www.nearinfinity.com/blogs/joe_ferner/performance_linq_to_sql_vs.html,结论是与 xmlreader 相比较慢(当然,因为 linq2Xml 建立在 xmlreader 之上),但我认为它仍然表现良好,因为 linq2Xml 提供了更大的灵活性和更易读/编码的方式。