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 算法
820,416 每月下载量
用于 144 个crate(7 直接使用)
24KB
557 行
sketches-ddsketch
这是将Golang的DDSketch分位数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