#基数 #近似 #交集 #并集 #操作 #端口 #常量内存

bin+lib hyperminhash

快速,常量内存基数近似

4 个版本

0.1.3 2024年2月28日
0.1.2 2024年2月25日
0.1.1 2019年5月5日
0.1.0 2019年5月5日

#3 in #并集

Download history 25/week @ 2024-03-08 3/week @ 2024-03-15 20/week @ 2024-03-29 5/week @ 2024-04-05

每月178 次下载

MIT 许可证

30KB
226

Hyperminhash for Rust

Crates.io Version Docs

Rust 的 Hyperminhash 纯移植版。非常快速,常量内存占用基数近似,包括交集和并集操作。

use std::{io, io::Bufread, fs};

let reader = io::BufReader::new(fs::File::open(fname)?).lines();
let sketch = reader.collect::<io::Result<hyperminhash::Sketch>>()?;
println!("{}", sketch.cardinality());

两个包含1000万个随机字符串的文件

操作 运行时间 结果
通过 sort strings1.txt | uniq | wc -l 计算基数 13.57 秒 9,774,970
通过 cat strings1.txt string2.txt | sort | uniq | wc -l 计算并集 84.4 秒 19,122,087
通过 comm -12 <(sort string1.txt) <(sort strings2.txt) | wc -l 计算交集 25.3 秒 428,370
通过 Hyperminhash 计算基数 0.69 秒 9,861,113
通过 Hyperminhash (多线程) 计算基数 0.15 秒 9,971,928
通过 Hyperminhash 计算并集 1.59 秒 19,042,941
通过 Hyperminhash 计算交集 1.52 秒 430,977

依赖项

~130KB