提升属性树性能

Posted

技术标签:

【中文标题】提升属性树性能【英文标题】:boost property tree performance 【发布时间】:2012-08-12 04:53:27 【问题描述】:

我计划为我们的应用程序http://www.boost.org/doc/libs/1_41_0/doc/html/property_tree.html 使用 boost 属性树。现在我想知道,每次我们调用这个方法 pt.get("debug.level", 0);它是再次读取整个文件还是从内部缓存中提供值。这个库有性能评估结果吗?它是否读取内存中的整个文件并从那里提供数据?任何人都可以分享他们使用这个库的经验吗?

【问题讨论】:

-1:由于缺乏研究工作。仅查看 API 就很清楚,属性树和“文件”之间没有连续的联系。如果没有其他原因,您根本不需要文件来创建文件。 【参考方案1】:

图书馆运作良好。您将文件加载到内存中,对属性树进行操作(查询、更新等),然后在完成后再次将其写出。

我们已经将它用于一些大到足以在使用boost::property_treestd::string 在 32 位机器上加载它们时耗尽地址空间的 JSON 文件。用缓存字符串类替换 std::string 效果很好。

对于大多数您实际上只是查看配置文件的应用程序来说,这很好。

【讨论】:

以上是关于提升属性树性能的主要内容,如果未能解决你的问题,请参考以下文章

使用 INI 文件提升属性树

递归添加子树以提升属性树

如何重命名提升属性树中的节点/元素?

提升属性树获取第一个元素

提升属性树值(反)序列化

提升属性树 put/get DBL_MAX