boost::property_tree::ptree的内存开销是多少?

7
我发现boost::property_tree::ptree有着巨大的内存开销。我的估计是一个空的ptree大约需要150字节,而且任何放入ptree中的条目都会至少再增加150字节。这使得对于包含数千个条目的树来说,它无法使用。
我的估计是否准确?是否有办法保持开销较低?
1个回答

2
Boost.PropertyTree基本上不是一个快速或轻量级的解析器。它专注于提供高层次的便利和功能,因此它并不是为了效率而构建的,我想。
您可以在Boost邮件列表中查看类似问题的这个主题
我建议Boost.PropertyTree的替代方案可能是:
- SAX解析器 - 这是XML解析的另一种方法。它类似于DOM解析器的相反;它逐个解析XML节点。通常,在DOM解析器中会发生“在开头为整个文件分配内存”的情况,但在SAX解析器中不会发生。 - 可自定义分配器的解析器 + 用户定义的内存池 - 您可以配置这种解析器的分配器以指向稳定的内存池。它可以简单地是预先分配的大型缓冲区、碎片感知池,甚至是内存映射文件等等...

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接