首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何序列化boost::accumulators::accumulator_set<>?

如何序列化boost::accumulators::accumulator_set<>?
EN

Stack Overflow用户
提问于 2015-08-29 19:02:11
回答 1查看 343关注 0票数 4

现在每个人都关心保护用户隐私和他们的数据。能够对数据进行统计分析,而不必实际保持数据样本的时间超过必要时间,这是朝着正确方向迈出的坚定一步。

boost库中的累加器的概念看起来非常适合于实现它。

累加器框架是执行增量计算的框架。该框架的使用遵循以下模式: 用户每次将数据推送到accumulator_set<>对象中一个示例。 accumulator_set<>以最有效的方法计算所请求的数量,解决请求计算之间的依赖关系,可能缓存中间结果。

只有一个大问题。我不知道如何序列化累加器实例,这样我就可以持久化它,而无需在应用程序启动之间保留示例数据。

如何创建实例和,恢复应用新示例所需的所有必要参数,继续其增量计算()?我不想从头开始,也不想保留以前的样本。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-29 23:52:45

我认为您误解了accumulator_set内部的工作方式。

它不保存样本。实际上,如果您只是参数化了'min‘和'max’状态的设置,那么唯一要保持的状态是结果类型的2个值。

其他一些统计数据保持更多的状态(例如直方图、百分位数等)。

既然accumulator_set<>首先支持序列化,那么它应该可以保留样本。

我还没查过

更新

好吧。我已经研究了大约一个小时,没有理由认为序列化是受支持的或易于实现的。

我见过的最多的是功能是可以复制的。

但是没有可以从外部调整的分配器,因此您也不能利用内存映射文件。

这使我得出结论,您想要的是,而不是库的特性。因此,在文档介绍的地方:

Boost.Accumulators既是增量统计计算库,也是可扩展的增量计算框架。

显然,我们应该把它理解为“在accumulator_set生存期内的增量操作”,而不是“增量”,如可恢复/持久的。

它看起来确实是一个很好的特性请求,库作者想要帮助它吗?

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32289719

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档