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 #并集
每月178 次下载
30KB
226 行
Hyperminhash for Rust
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