【发布时间】:2016-01-26 18:33:39
【问题描述】:
我正在使用 libxml2 解析 xml 文档,我看到使用 valgrind xmlParseFile 需要 8GB 来解析 600MB 文件。我在 libxml2 站点上发现它通常需要 xml 文档大小的 4 倍,但对我来说它需要的远不止这些。 谁能指出可能是什么问题?
【问题讨论】:
标签: libxml2
我正在使用 libxml2 解析 xml 文档,我看到使用 valgrind xmlParseFile 需要 8GB 来解析 600MB 文件。我在 libxml2 站点上发现它通常需要 xml 文档大小的 4 倍,但对我来说它需要的远不止这些。 谁能指出可能是什么问题?
【问题讨论】:
标签: libxml2
这取决于文档的结构,但 10 到 20 的系数并不少见。 “4 次”引用可能是指 32 位系统。在 64 位系统上,开销更大,除了实际的字符数据外,每个元素和属性通常约为 120-150 个字节。
对于这么大的数据,XML 通常是错误的选择。但是使用 libxml2 的流式解析器接口之一(SAX 或 xmlreader),您应该能够以低得多的内存开销来解析此类文档。
【讨论】: