8次发布

0.3.0 2024年6月1日
0.2.2 2024年2月4日
0.2.1 2023年4月10日
0.2.0 2022年6月27日
0.1.1 2019年9月21日

#46 in 算法

Download history · Rust 包仓库 148896/week @ 2024-04-27 · Rust 包仓库 148077/week @ 2024-05-04 · Rust 包仓库 161598/week @ 2024-05-11 · Rust 包仓库 159568/week @ 2024-05-18 · Rust 包仓库 166386/week @ 2024-05-25 · Rust 包仓库 234408/week @ 2024-06-01 · Rust 包仓库 215421/week @ 2024-06-08 · Rust 包仓库 210971/week @ 2024-06-15 · Rust 包仓库 255797/week @ 2024-06-22 · Rust 包仓库 222971/week @ 2024-06-29 · Rust 包仓库 214062/week @ 2024-07-06 · Rust 包仓库 205748/week @ 2024-07-13 · Rust 包仓库 217483/week @ 2024-07-20 · Rust 包仓库 214194/week @ 2024-07-27 · Rust 包仓库 201259/week @ 2024-08-03 · Rust 包仓库 153936/week @ 2024-08-10 · Rust 包仓库

820,416 每月下载量
用于 144 个crate(7 直接使用)

Apache-2.0

24KB
557

sketches-ddsketch

这是将GolangDDSketch分位数sketch实现直接移植到Rust。DDSketch是一个具有相对误差保证的全合并分位数sketch,并且速度非常快。

DDSketch

  • sketch大小根据需要自动增长,初始为128个bin。
  • 极快的样本插入和sketch合并。

用法

use sketches_ddsketch::{Config, DDSketch};

let config = Config::defaults();
let mut sketch = DDSketch::new(c);

sketch.add(1.0);
sketch.add(1.0);
sketch.add(1.0);

// Get p=50%
let quantile = sketch.quantile(0.5).unwrap();
assert_eq!(quantile, Some(1.0));

性能

此移植实现中未进行任何性能调整,因此我们预计其配置文件将与原始实现相似。

开箱即用,可以实现超过70M样本插入/秒和350K sketch合并/秒。所有测试都在一个单核Intel i7处理器上运行,最大时钟频率为4.2Ghz。

依赖项

~170KB