#直方图 #标签 #内存 #参数 #标准直方图 #压缩直方图

c2_histograms

直方图压缩和使用的工具

6个版本

0.2.4 2020年7月31日
0.2.3 2020年7月31日
0.1.0 2020年7月24日

#494 in 压缩

GPL-2.0-or-later

47KB
642

C-Squared直方图 Aaron Gindi

这个库旨在使用户能够控制直方图的精度和内存使用之间的权衡,这对于内存研究至关重要。

这个库不实现节省内存的操作,而是仅模拟这些操作以供评估。

补丁0.2.0:修复与CompressedHistogram相关的错误,并使CompressedHistogram更高效。由于从Param实现者中移除了Copy trait,C2Params现在返回嵌入式参数的引用而不是副本,因此这是一个破坏性更改。


lib.rs:

这个库包含用于模拟空间高效直方图的工具。对于这个库,直方图是从标签到频率的映射,这两个都必须是数值。

我们提供了一个标准直方图实现(StandardHistogram),它使用HashMap以原值存储标签-频率对。

此外,我们还提供了三个额外的直方图实现,它们要么比StandardHistogram使用更少的内存,要么使用固定数量的内存。优化是在两个维度上进行的,标签存储(称为“压缩”)和频率存储(称为“压缩”)。因此得名“C-Squared直方图”。这三个实现如下

  • CompressedHistogram - 这个实现通过近似频率使用比StandardHistogram更少的空间
  • CompactHistogram - 这个实现根据几个精度参数消耗固定数量的空间。通过近似标签来节省空间。
  • C2Histogram - 这个实现也利用了固定数量的空间,通常比CompactHistogram少得多。它近似标签和频率。

这些实现都是参数化的,以便用户可以直接控制精度和内存性能之间的权衡。

要构建一个 StandardHistogram,请使用函数 create_standard_histogram。然后,可以使用转换函数 to_compactto_compressedto_c2 从该标准直方图派生出其他直方图。

无运行时依赖