【问题标题】:Why is Linq to Xml so slow on Vista?为什么在 Vista 上 Linq to Xml 这么慢?
【发布时间】:2009-02-02 23:02:11
【问题描述】:

我有一个应用程序将一些 XML 文档加载到内存中,然后使用 Linq 对其运行各种查询。

该应用程序在实时服务器 (Windows Server 2003) 和 XP 上的 Visual Studio 2008 下运行良好。但在我的 Vista 笔记本电脑(4gb RAM,2GHz CPU)上,所有 Linq 查询运行真的很慢。应该花费几毫秒而不是几秒钟。有趣的是,代码的所有其他部分都可以顺利、快速地运行。

有其他人遇到过这种事情吗?

【问题讨论】:

    标签: c# xml linq windows-vista performance


    【解决方案1】:

    不,我绝对没有。查看您的系统事件日志。里面有什么奇怪的事情吗?看看你的 CPU。有什么东西在吃你的 CPU 吗?是你认为的那样吗?

    【讨论】:

      【解决方案2】:

      我的台式机和笔记本电脑上的 VS 2008 和 SQL DEV 没有任何此类问题。我的机器规格与您的相似。

      【讨论】:

        【解决方案3】:

        这里没有问题,我的开发代码库中有很多 linq。在我的笔记本电脑上运行 Vista Ultimate (32) 进行开发。在我的测试服务器上运行 windows 2003。

        没有我注意到的问题。

        【讨论】:

          【解决方案4】:

          获取一个类似于 VS 中内置的分析器,或者来自 Red Gate (http://www.red-gate.com/) 的分析器并找出实际发生的情况!

          【讨论】:

            【解决方案5】:

            我在 Vista 下看到了在 XP 下不会出现的巨大的疯狂性能问题,但只有在我在 IDE 下运行调试版本时才会出现。

            【讨论】:

              【解决方案6】:

              我没有看到您报告的那种性能问题。请参阅http://thinqlinq.com/Default/Querying-the-complete-plays-of-Shakespeare-using-LINQ-to-XML.aspx 获取查询莎士比亚全集寻找行数最多的字符的示例。当跨越 40 个大小为 100 K 的 XML 文件生成一个 5 meg 的 XML 文档时,我仍然看到亚秒级的查询时间。

              您可能会遇到导致性能下降的复杂联接或递归 where 子句的问题。

              【讨论】:

              • 那么为什么其他机器上的性能都很好?
              【解决方案7】:

              笔记本电脑的硬盘速度有多快。您可能只是看到了从磁盘加载大型 xml 文件的成本。

              【讨论】:

              • 我相信这些文件应该在我对它们运行查询时加载到内存中。 XML 文件的总大小约为 150kb,我有 4gb 的内存,所以它不应该用完!
              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2023-04-02
              • 1970-01-01
              • 2012-05-05
              • 2013-02-28
              • 1970-01-01
              • 2016-04-19
              相关资源
              最近更新 更多