2个版本
0.2.2 | 2024年6月19日 |
---|---|
0.2.1 | 2024年6月8日 |
#915 in 数据结构
每月82次下载
26KB
527 行
heavykeeper-rs
针对Top-K大象流的Top-K Heavykeeper算法
这是基于由Gong Junzhi, Yang Tong, Zhang Haowei, Li Hao, 北京大学;Uhlig Steve, 伦敦玛丽女王大学;Chen Shigang, 佛罗里达大学;Uden Lorna, 斯塔福德郡大学;Li Xiaoming, 北京大学撰写的论文HeavyKeeper: An Accurate Algorithm for Finding Top-k Elephant Flows。
示例
请参阅ip_files.rs以了解如何使用该库来统计文件中的top-k IP流。
以下是一个示例用法
// create a new TopK
let mut topk = TopK::new(k, width, depth, decay);
// add some items
topk.add(item);
// check the counts
for node in topk.list() {
println!("{} {}", String::from_utf8_lossy(&node.item), node.count);
}
其他实现
Jigsaw-Sketch: 高速网络中查找top-k大象流的一个快速且准确的算法 张博宇, 黄鹤, 孙宇婵, 杜洋 & 王丹
运行
一个示例驱动程序,可以用作词频统计程序,可以在main.rs
中找到。
用法
cargo build --release
target/release/heavykeeper -k 10 -w 8192 -d 2 -y 0.95 -f data/war_and_peace.txt
构建示例
cargo build --examples --release
target/release/examples/ip_files
许可证
本项目采用Apache/MIT许可证的双重许可。
依赖关系
~2.9–4MB
~65K SLoC