libxml2占用大量内存(如800GB doc的8GB)进行解析

时间:2016-01-26 18:33:39

标签: libxml2

我使用libxml2来解析xml doc,我看到使用valgrind,xmlParseFile需要8GB来解析600MB文件。我在libxml2网站上发现它通常需要xml doc大小的4倍,但对我来说它需要更多。 任何人都可以指出可能存在的问题吗?

1 个答案:

答案 0 :(得分:0)

这取决于文件的结构,但10-20的因素并不罕见。 " 4次"引用可能指的是32位系统。在64位系统上,除实际字符数据外,每个元素和属性的开销都较大,通常约为120-150字节。

对于这么大的数据,XML通常是错误的选择。但是使用libxml2的流解析器接口之一(SAX或 xmlreader ),您应该能够以更低的内存开销来解析这些文档。