【问题标题】:linq to xml performancelinq to xml 性能
【发布时间】:2011-02-06 03:11:08
【问题描述】:

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

【问题讨论】:

标签: c# linq linq-to-xml


【解决方案1】:

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

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

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

LINQ to XML 比 XmlReader 更易于使用几个数量级。
如果您知道您将处理 200MB XML 文件,或者如果您已经测量了您的性能并证明 XDocument 构造函数太慢,您应该只使用 XmlReader。

【讨论】:

  • Microsoft 确实提供了有关如何使用 Linq 将 xml 文件的输入/输出流式传输到 Xml 的示例,这样您最终不会将整个文件仅加载到内存中的一小部分:msdn.microsoft.com/en-us/library/…
【解决方案2】:
【解决方案3】:

只要谷歌linq vs xmlreader你就会拥有它。

顶级结果http://www.nearinfinity.com/blogs/joe_ferner/performance_linq_to_sql_vs.html 得出的结论是,它比 xmlreader 慢(当然,因为 linq2Xml 是建立在 xmlreader 之上的),但恕我直言,它比可接受的要好得多,因为您获得了灵活性和更容易阅读/编码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多