Rename methods
This commit is contained in:
1 parent
b006ece0c1
commit
3ac7cd068b
3 files changed
+125
-86
No files matched your search
+109
-69
@@ -1,8 +1,8 @@
|
||||
use criterion::{criterion_group, criterion_main, Criterion, BenchmarkId};
|
||||
use std::collections::{BTreeMap, HashMap};
|
||||
use std::hint::black_box;
|
||||
use criterion::{BenchmarkId, Criterion, criterion_group, criterion_main};
|
||||
use hashbrown::HashMap as HashbrownMap;
|
||||
use rustc_hash::FxHashMap;
|
||||
use std::collections::{BTreeMap, HashMap};
|
||||
use std::hint::black_box;
|
||||
|
||||
// Тестовая структура (аналог вашей сущности)
|
||||
#[derive(Debug, Clone)]
|
||||
@@ -117,40 +117,60 @@ fn bench_insert(c: &mut Criterion) {
|
||||
for size in [10_000, 100_000, 500_000] {
|
||||
let entities = generate_entities(size);
|
||||
|
||||
group.bench_with_input(BenchmarkId::new("Vec (sorted)", size), &entities, |b, entities| {
|
||||
let mut vec = Vec::with_capacity(size);
|
||||
b.iter(|| {
|
||||
bench_vec_insert_sorted(&mut vec, black_box(entities));
|
||||
});
|
||||
});
|
||||
group.bench_with_input(
|
||||
BenchmarkId::new("Vec (sorted)", size),
|
||||
&entities,
|
||||
|b, entities| {
|
||||
let mut vec = Vec::with_capacity(size);
|
||||
b.iter(|| {
|
||||
bench_vec_insert_sorted(&mut vec, black_box(entities));
|
||||
});
|
||||
},
|
||||
);
|
||||
|
||||
group.bench_with_input(BenchmarkId::new("BTreeMap", size), &entities, |b, entities| {
|
||||
let mut map = BTreeMap::new();
|
||||
b.iter(|| {
|
||||
bench_btreemap_insert(&mut map, black_box(entities));
|
||||
});
|
||||
});
|
||||
group.bench_with_input(
|
||||
BenchmarkId::new("BTreeMap", size),
|
||||
&entities,
|
||||
|b, entities| {
|
||||
let mut map = BTreeMap::new();
|
||||
b.iter(|| {
|
||||
bench_btreemap_insert(&mut map, black_box(entities));
|
||||
});
|
||||
},
|
||||
);
|
||||
|
||||
group.bench_with_input(BenchmarkId::new("HashMap (std)", size), &entities, |b, entities| {
|
||||
let mut map = HashMap::new();
|
||||
b.iter(|| {
|
||||
bench_hashmap_insert(&mut map, black_box(entities));
|
||||
});
|
||||
});
|
||||
group.bench_with_input(
|
||||
BenchmarkId::new("HashMap (std)", size),
|
||||
&entities,
|
||||
|b, entities| {
|
||||
let mut map = HashMap::new();
|
||||
b.iter(|| {
|
||||
bench_hashmap_insert(&mut map, black_box(entities));
|
||||
});
|
||||
},
|
||||
);
|
||||
|
||||
group.bench_with_input(BenchmarkId::new("HashMap (hashbrown)", size), &entities, |b, entities| {
|
||||
let mut map = HashbrownMap::new();
|
||||
b.iter(|| {
|
||||
bench_hashbrown_insert(&mut map, black_box(entities));
|
||||
});
|
||||
});
|
||||
group.bench_with_input(
|
||||
BenchmarkId::new("HashMap (hashbrown)", size),
|
||||
&entities,
|
||||
|b, entities| {
|
||||
let mut map = HashbrownMap::new();
|
||||
b.iter(|| {
|
||||
bench_hashbrown_insert(&mut map, black_box(entities));
|
||||
});
|
||||
},
|
||||
);
|
||||
|
||||
group.bench_with_input(BenchmarkId::new("FxHashMap", size), &entities, |b, entities| {
|
||||
let mut map = FxHashMap::default();
|
||||
b.iter(|| {
|
||||
bench_fxhashmap_insert(&mut map, black_box(entities));
|
||||
});
|
||||
});
|
||||
group.bench_with_input(
|
||||
BenchmarkId::new("FxHashMap", size),
|
||||
&entities,
|
||||
|b, entities| {
|
||||
let mut map = FxHashMap::default();
|
||||
b.iter(|| {
|
||||
bench_fxhashmap_insert(&mut map, black_box(entities));
|
||||
});
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
group.finish();
|
||||
@@ -180,21 +200,29 @@ fn bench_search(c: &mut Criterion) {
|
||||
let mut fxhashmap = FxHashMap::default();
|
||||
bench_fxhashmap_insert(&mut fxhashmap, &entities);
|
||||
|
||||
group.bench_with_input(BenchmarkId::new("Vec (binary search)", size), &search_ids, |b, ids| {
|
||||
b.iter(|| {
|
||||
for &id in ids {
|
||||
black_box(bench_vec_search_separated(&entity_ids, &vec, black_box(id)));
|
||||
}
|
||||
});
|
||||
});
|
||||
group.bench_with_input(
|
||||
BenchmarkId::new("Vec (binary search)", size),
|
||||
&search_ids,
|
||||
|b, ids| {
|
||||
b.iter(|| {
|
||||
for &id in ids {
|
||||
black_box(bench_vec_search_separated(&entity_ids, &vec, black_box(id)));
|
||||
}
|
||||
});
|
||||
},
|
||||
);
|
||||
|
||||
group.bench_with_input(BenchmarkId::new("Vec (binary search) separated", size), &search_ids, |b, ids| {
|
||||
b.iter(|| {
|
||||
for &id in ids {
|
||||
black_box(bench_vec_search(&vec, black_box(id)));
|
||||
}
|
||||
});
|
||||
});
|
||||
group.bench_with_input(
|
||||
BenchmarkId::new("Vec (binary search) separated", size),
|
||||
&search_ids,
|
||||
|b, ids| {
|
||||
b.iter(|| {
|
||||
for &id in ids {
|
||||
black_box(bench_vec_search(&vec, black_box(id)));
|
||||
}
|
||||
});
|
||||
},
|
||||
);
|
||||
|
||||
group.bench_with_input(BenchmarkId::new("BTreeMap", size), &search_ids, |b, ids| {
|
||||
b.iter(|| {
|
||||
@@ -204,29 +232,41 @@ fn bench_search(c: &mut Criterion) {
|
||||
});
|
||||
});
|
||||
|
||||
group.bench_with_input(BenchmarkId::new("HashMap (std)", size), &search_ids, |b, ids| {
|
||||
b.iter(|| {
|
||||
for &id in ids {
|
||||
black_box(bench_hashmap_search(&hashmap, black_box(id)));
|
||||
}
|
||||
});
|
||||
});
|
||||
group.bench_with_input(
|
||||
BenchmarkId::new("HashMap (std)", size),
|
||||
&search_ids,
|
||||
|b, ids| {
|
||||
b.iter(|| {
|
||||
for &id in ids {
|
||||
black_box(bench_hashmap_search(&hashmap, black_box(id)));
|
||||
}
|
||||
});
|
||||
},
|
||||
);
|
||||
|
||||
group.bench_with_input(BenchmarkId::new("HashMap (hashbrown)", size), &search_ids, |b, ids| {
|
||||
b.iter(|| {
|
||||
for &id in ids {
|
||||
black_box(bench_hashbrown_search(&hashbrown, black_box(id)));
|
||||
}
|
||||
});
|
||||
});
|
||||
group.bench_with_input(
|
||||
BenchmarkId::new("HashMap (hashbrown)", size),
|
||||
&search_ids,
|
||||
|b, ids| {
|
||||
b.iter(|| {
|
||||
for &id in ids {
|
||||
black_box(bench_hashbrown_search(&hashbrown, black_box(id)));
|
||||
}
|
||||
});
|
||||
},
|
||||
);
|
||||
|
||||
group.bench_with_input(BenchmarkId::new("FxHashMap", size), &search_ids, |b, ids| {
|
||||
b.iter(|| {
|
||||
for &id in ids {
|
||||
black_box(bench_fxhashmap_search(&fxhashmap, black_box(id)));
|
||||
}
|
||||
});
|
||||
});
|
||||
group.bench_with_input(
|
||||
BenchmarkId::new("FxHashMap", size),
|
||||
&search_ids,
|
||||
|b, ids| {
|
||||
b.iter(|| {
|
||||
for &id in ids {
|
||||
black_box(bench_fxhashmap_search(&fxhashmap, black_box(id)));
|
||||
}
|
||||
});
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
group.finish();
|
||||
@@ -282,4 +322,4 @@ fn bench_memory_efficiency(c: &mut Criterion) {
|
||||
}
|
||||
|
||||
criterion_group!(benches, bench_insert, bench_search, bench_memory_efficiency);
|
||||
criterion_main!(benches);
|
||||
criterion_main!(benches);
|
||||
Reference in new issue
Block a user