Skip to content

Commit d9b5c3f

Browse files
authored
dustoff ahash-compare (tkaitchuck#165)
fixes some issues that block building ahash-compare updates dependencies replace twoxhash with the newer xxhash-rust
1 parent a74829b commit d9b5c3f

File tree

2 files changed

+15
-18
lines changed

2 files changed

+15
-18
lines changed

compare/Cargo.toml

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ readme = "README.md"
1313
[features]
1414
default = ["std"]
1515
std = ["ahash/std"]
16-
nightly = ["ahash/specialize"]
1716
compile-time-rng = ["ahash/compile-time-rng"]
1817

1918
[[bench]]
@@ -36,9 +35,9 @@ criterion = "0.3.3"
3635
fnv = "1.0.7"
3736
fxhash = "0.2.1"
3837
farmhash = "1.1.5"
39-
highway = "0.5.0"
38+
highway = "1.1.0"
4039
metrohash = "1.0.6"
41-
siphasher = "0.3.3"
40+
siphasher = "1"
4241
t1ha = "0.1.0"
43-
wyhash = "0.4.1"
44-
twox-hash = "1.6.0"
42+
wyhash = "0.5"
43+
xxhash-rust = {version = "0.8", features = ["xxh3"]}

compare/tests/compare.rs

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
1-
use ahash::{CallHasher, RandomState};
1+
use ahash::RandomState;
22
use criterion::*;
33
use farmhash::FarmHasher;
4-
use fnv::{FnvBuildHasher};
4+
use fnv::FnvBuildHasher;
55
use fxhash::FxBuildHasher;
66
use std::hash::{BuildHasher, BuildHasherDefault, Hash, Hasher};
7+
use xxhash_rust::xxh3::Xxh3Builder;
78

89
fn ahash<K: Hash>(k: &K, builder: &RandomState) -> u64 {
9-
let hasher = builder.build_hasher();
10-
k.get_hash(hasher)
10+
let mut hasher = builder.build_hasher();
11+
k.hash(&mut hasher);
12+
hasher.finish()
1113
}
1214

1315
fn generic_hash<K: Hash, B: BuildHasher>(key: &K, builder: &B) -> u64 {
@@ -28,25 +30,21 @@ fn create_string(len: usize) -> String {
2830
fn compare_ahash(c: &mut Criterion) {
2931
let builder = RandomState::new();
3032
let test = "compare_ahash";
31-
for num in &[1,3,7,15,31,63,127,255,511,1023] {
33+
for num in &[1, 3, 7, 15, 31, 63, 127, 255, 511, 1023] {
3234
let name = "string".to_owned() + &num.to_string();
3335
let string = create_string(*num);
3436
c.bench_with_input(BenchmarkId::new(test, &name), &string, |bencher, s| {
35-
bencher.iter(|| {
36-
black_box(ahash(s, &builder))
37-
});
37+
bencher.iter(|| black_box(ahash(s, &builder)));
3838
});
3939
}
4040
}
4141

4242
fn compare_other<B: BuildHasher>(c: &mut Criterion, test: &str, builder: B) {
43-
for num in &[1,3,7,15,31,63,127,255,511,1023] {
43+
for num in &[1, 3, 7, 15, 31, 63, 127, 255, 511, 1023] {
4444
let name = "string".to_owned() + &num.to_string();
4545
let string = create_string(*num);
4646
c.bench_with_input(BenchmarkId::new(test, &name), &string, |bencher, s| {
47-
bencher.iter(|| {
48-
black_box(generic_hash(&s, &builder))
49-
});
47+
bencher.iter(|| black_box(generic_hash(&s, &builder)));
5048
});
5149
}
5250
}
@@ -117,7 +115,7 @@ fn compare_wyhash(c: &mut Criterion) {
117115
fn compare_xxhash(c: &mut Criterion) {
118116
let int: u64 = 1234;
119117
let string = create_string(1024);
120-
let builder = twox_hash::RandomXxHashBuilder64::default();
118+
let builder = Xxh3Builder::default();
121119
compare_other(c, "compare_xxhash", builder)
122120
}
123121

0 commit comments

Comments
 (0)