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



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

我的估计错了吗?有什么办法可以降低管理费用吗?

PropertyTree基本上不是一个快速轻量级解析器。它专注于提供高层的便利和功能,所以我想它不是为了高效而构建的。

你可以在boost邮件列表中看到类似的问题。

我建议使用Boost的替代方案。PropertyTree可以是:

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

相关内容

  • 没有找到相关文章

最新更新