【问题标题】:what is the memory overhead for boost::property_tree::ptreeboost::property_tree::ptree 的内存开销是多少
【发布时间】:2013-05-20 16:40:24
【问题描述】:

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

我的估计有误吗?有什么方法可以降低开销吗?

【问题讨论】:

    标签: memory boost properties tree ptree


    【解决方案1】:

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

    您可以在 boost 邮件列表中看到 this thread 来解决类似问题。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-30
      • 2011-12-30
      • 2013-07-14
      • 1970-01-01
      • 2015-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多