self.dom = dom = minidom.parse(datasource)
datasource
是一个30MB的XML文件。这个解析语句构造了一个树结构,它消耗了大约2.5GB的RAM,对我来说也是如此。
但是,我的公司目前只使用python 2.4,因此无法使用ElementTree或任何最新的解析方法。切换到SAX解析对我来说也是非常昂贵的。那么,是否有任何使用DOM解析的优化,我可以这样做,以减少使用的内存量?
另外,我想知道XML文件的解析是否需要2.5G,或者解析后生成的树结构(dom / self.dom)是否占用了大量内存?我怎么找到它?
答案 0 :(得分:1)
来自official doc:
xml.dom.minidom.parse(filename_or_file[, parser[, bufsize]])
您可以指定一个bufsize,因此它只会在任何给定时间内占用X内存量