使用xml.dom.minidom内存泄漏解析XML


问题内容

我使用xml.dom.minidom来解析XML文件,有点像这样:

import xml.dom.minidom as dom

file= open('file.xml')
doc= dom.parse(file)
# SNIP
doc.unlink()

即使取消链接文档后,内存使用量为约120 MIB。当一个被实际使用的程序,致使多个XML文件进行解析,存储器使用爬升至约300 MIB,这是不可接受的。

我敢肯定的内存泄漏是不是我的代码造成的,而是由minidom命名,因为即使这样做只是

doc= dom.parse(file)
doc.unlink()

产生相同的结果。

我是不是做错了什么,或者这是minidom命名的错误吗?

PS:我宁愿坚持minidom命名,因为有 很多 的XML解析在我的代码发生的事情,我宁愿不完全重写所有的,但如果没有其他选择,我会做到这一点。


问题答案:

我也观察与minidom命名相同的问题!我们并不孤单。例如,见这里

在那里,它被建议使用的其他XML实现与像Python绑定