【发布时间】:2010-01-12 03:45:15
【问题描述】:
我正在处理非常大的 XML 文件(数百 MB)。这棵树相当简单
<items>
<item>
<column1>ABC</column1>
<column2>DEF</column2>
</item>
<item>
<column1>GHI</column1>
<column2>KLM</column2>
</item>
</items>
我需要解析这个文档,并删除一些<item> 元素。到目前为止,我实现的最佳性能是使用 XmlReader,将每个 <item> 缓存在内存中,如果符合标准,则使用 XmlWriter 将其写回,如果不符合标准,则简单地忽略它。我能做些什么来让它更快吗?
【问题讨论】:
-
您在寻找 .Net 解决方案吗?
-
是的,我正在寻找 .net,很抱歉没有澄清这一点
-
你现在看到什么样的性能,你需要多快?这是一次性迁移(即遍历所有现有文档并删除“坏”数据)还是正在进行的操作(即我们每 N 分钟收到这些 100MB 文档,并且需要在使用它们之前清理它们)?
-
该文件将每天进入一次,但由用户指定节点删除条件。一个 250MB 的文档需要 30 秒才能运行,我希望它快 10 倍。将其转换为不同的格式(如 JSON)是一种替代方法,假设它会给我们带来更好的性能。
-
30 秒,每天一次似乎不是优化的高价值候选...除非用户指定他们的节点删除标准然后抱怨 30 秒太长而无法等待“净化”的 XML 文档。
标签: xml performance parsing