用于组合统计的多功能数据结构

数据挖掘 数据集 统计数据 算法
2022-02-18 16:53:50

不确定这是数学、统计还是数据科学,但我想我会把它贴在这里让网站使用。

作为程序员,当您实现了系统/组件时,您可能希望允许一些性能监控。例如查询一个函数调用的使用频率,用了多长时间等等。所以通常你关心计数、平均值/百分位数、最大值/最小值和类似的统计数据。这可能是自启动以来的测量值,也可能是滚动平均值或窗口。

我想知道是否有一个好的数据结构可以同时有效地更新,它可以用作大多数查询的来源。例如,在增加的时间段内有一个汇总指标(计数、总和、最小值、最大值)的环形缓冲区,以及定期触发的后台聚合过程。

这里的重点(对我来说)是内存消耗有限的内存数据结构。(对于其他事情,我会使用 RRD 类型的库)。

1个回答

听起来您想要Boost Accumulators库:

Boost.Accumulators 既是增量统计计算的库,也是增量计算的可扩展框架。该库主要处理累加器的概念,累加器是一种原始计算实体,一次接受一个样本数据并维护一些内部状态。这些累加器可能会将它们的一些计算卸载到它们所依赖的其他累加器上。累加器被分组在一个累加器集中。Boost.Accumulators 解决了集合中累加器之间的相互依赖关系,并确保以正确的顺序处理累加器。