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

时间:2013-05-25 02:18:16

标签: memory boost properties tree ptree

我发现boost :: property_tree :: ptree有很大的内存开销。我的估计是空的ptree大约是150个字节,并且放在ptree中的任何条目至少会增加150个字节。这使得我们无法使用包含数千个条目的树。

估计我的估计?有没有办法保持低开销?

1 个答案:

答案 0 :(得分:1)

Boost.PropertyTree基本上不是 fast 轻量级解析器。
它专注于提供高层便利性和功能性,因此我认为它不是高效的。

您可以在提升邮件列表中看到this thread类似问题。

我建议Boost.PropertyTree的替代方案可能是:

  • SAX解析器 - 这是另一种XML解析方法。它就像DOM解析器的对立面;它逐个解析XML节点。通常,“开始时整个文件的内存分配”发生在DOM解析器中,但在SAX解析器上不会发生。
  • 分配器可自定义的解析器 +用户定义的内存池 - 您可以配置此类解析器的分配器以指向稳定的内存池。它可能只是预分配内存的大缓冲区,碎片感知池,甚至是内存映射文件等......