gpt4 book ai didi

c# - 海量数据的问题

转载 作者:行者123 更新时间:2023-11-30 22:37:37 26 4
gpt4 key购买 nike

我有从 xml 读取数据的 WCF 服务。 xml 中的数据每 1 分钟更改一次。这个 xml 非常大,大约有 16k 条记录。解析这大约需要 7 秒。所以它肯定很长。

现在它以这种方式工作:

  1. ASP.NET 调用 WCF
  2. WCF解析xml
  3. ASP.NET 正在等待 WCF 回调
  4. WCF 将数据返回给 ASP.NET

当然有 1 分钟的缓存,但之后 WCF 必须再次加载数据。

是否有可能在不停止站点的情况下制作可以刷新数据的东西?像...我不知道,双缓冲?如果没有新数据,那将检索旧数据?也许您知道更好的解决方案?

最好的问候

编辑:耗时最长的语句:

        XDocument = XDocument.Load(XmlReader.Create(uri)); //takes 7 sec.

解析需要 70 毫秒,没问题,但这不是问题所在。有没有更好的解决方案来不阻止网站? :)

编辑2:好的,我找到了更好的解决方案。简单地说,我将 xml 下载到硬盘,然后从中读取数据。然后另一个进程开始下载新版本的 xml 并替换旧的。感谢订婚。

最佳答案

您似乎有从 XML 创建对象模型的 XML to Object 工具。

通常花费大部分时间的不是解析,而是创建所有这些对象来表示数据。

所以您可能只想提取部分 XML 数据,这对您来说会更快,而不是系统地创建一个大对象树来仅提取其中的一部分。

例如,您可以使用 XPath 从 XML 文件中提取所需的部分。

我过去使用过一个专注于性能的不错的 XML 解析工具。它称为 vtd-xml(请参阅 http://vtd-xml.sourceforge.net/)。

它支持 XPath 和其他 XML 技术。

有一个 C# 版本。我使用过 Java 版本,但我确信 C# 版本具有相同的品质。

LINQ to XML 也是一个不错的工具,它可能对您有用。

关于c# - 海量数据的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6426469/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com