【问题标题】:python xml parser minidom memory usagepython xml解析器minidom内存使用
【发布时间】:2013-08-23 03:30:23
【问题描述】:

我最近用minidom解析了一些xml文件。

有趣的是,我读取一个 56MB 的文件需要 8G 内存,相对平坦,即大多数节点处于同一级别。

为什么会这样?

【问题讨论】:

  • 也许你有一些讨厌的实体扩展? en.wikipedia.org/wiki/Billion_laughs 是一个极端的例子。
  • 也许您可以发布一些代码,以便我们查看。我的猜测是,您正在构建许多 diff 格式的不可变对象,表示相同的数据,而不收集它们。
  • objgraph 是用于检查流程对象的绝佳工具。我会从那里开始,看看在数百万/十亿中创建了哪些对象。

标签: python minidom


【解决方案1】:

你不是唯一面对this的人。

以我的拙见,基于minidom的程序消耗大量内存的主要原因是由于很多minidom函数是递归实现的(递归和内存使用通常不是好朋友)。

我建议您选择其他更快的 Python XML 解析器库(尤其是 lxml)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-31
    • 2017-09-22
    • 2018-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多