使用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绑定
- xml.etree.ElementTree:Python标准库的替代实现
- libxml2的:XML解析器Ç用Python绑定
- LXML:一个更Python绑定的libxml2