12个版本
0.1.11 | 2023年9月25日 |
---|---|
0.1.10 | 2022年5月2日 |
0.1.9 | 2021年2月12日 |
0.1.7 | 2020年11月29日 |
0.1.0 | 2017年5月30日 |
#341 在 数据结构 类别中
7,161 每月下载量
在 10 个 包中使用 (直接使用 2 个)
21KB
385 行
exponential-decay-histogram
一个对近期值进行指数加权的直方图。
许可
许可协议为以下之一:
- Apache License, Version 2.0, (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
您可选择其中之一。
贡献
除非您明确声明,否则根据Apache-2.0许可证定义,您提交的任何有意包含在作品中的贡献,将按上述方式双许可,不附加任何额外条款或条件。
lib.rs
:
一个对近期值进行指数加权的直方图。
直方图计算数据集中值分布的统计信息。此直方图对近期值相对于旧值进行指数加权,使其适用于长时间运行进程的状态监控等用例。
该直方图不会同时存储所有值,而是存储一个随机子集。这使我们能够对总内存使用量进行限制,而不管事件发生的速率如何。
此实现基于Java Metrics 库中的 ExponentiallyDecayingReservoir
类,该类本身基于Cormode等人在2009年描述的前向衰减模型。
示例
use exponential_decay_histogram::ExponentialDecayHistogram;
let mut histogram = ExponentialDecayHistogram::new();
// Do some work for a while and fill the histogram with some information.
// Even though we're putting 10000 values into the histogram, it will only
// retain a subset of them.
for _ in 0..10000 {
let size = do_work();
histogram.update(size);
}
// Take a snapshot to inspect the current state of the histogram.
let snapshot = histogram.snapshot();
println!("count: {}", snapshot.count());
println!("min: {}", snapshot.min());
println!("max: {}", snapshot.max());
println!("mean: {}", snapshot.mean());
println!("standard deviation: {}", snapshot.stddev());
println!("median: {}", snapshot.value(0.5));
println!("99th percentile: {}", snapshot.value(0.99));
依赖
~555KB