Skip to content

Commit ff97e3d

Browse files
committed
Improve iter
1 parent 2129c23 commit ff97e3d

File tree

4 files changed

+160
-115
lines changed

4 files changed

+160
-115
lines changed

benchmarks/src/btreemap.rs

+13-5
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,7 @@ pub fn btreemap_read_keys_from_range() -> BenchResult {
232232
bench_fn(|| {
233233
btree
234234
.range((Bound::Included(0), Bound::Included(size)))
235-
.map(|entry| entry.0)
235+
.map(|entry| entry.key().clone())
236236
.sum::<u32>()
237237
})
238238
}
@@ -249,8 +249,8 @@ pub fn btreemap_read_every_third_value_from_range() -> BenchResult {
249249
bench_fn(|| {
250250
btree
251251
.range((Bound::Included(0), Bound::Included(size)))
252-
.filter(|entry| entry.0 % 3 == 0)
253-
.map(|entry| entry.1.len())
252+
.filter(|entry| entry.key() % 3 == 0)
253+
.map(|entry| entry.value().len())
254254
.sum::<usize>()
255255
})
256256
}
@@ -620,8 +620,16 @@ fn iter_helper(size: u32, value_size: u32, iter_type: IterType) -> BenchResult {
620620
}
621621

622622
match iter_type {
623-
IterType::Iter => bench_fn(|| for _ in btree.iter() {}),
624-
IterType::IterRev => bench_fn(|| for _ in btree.iter().rev() {}),
623+
IterType::Iter => bench_fn(|| {
624+
for entry in btree.iter() {
625+
std::hint::black_box((entry.key(), entry.value()));
626+
}
627+
}),
628+
IterType::IterRev => bench_fn(|| {
629+
for entry in btree.iter().rev() {
630+
std::hint::black_box((entry.key(), entry.value()));
631+
}
632+
}),
625633
IterType::Keys => bench_fn(|| for _ in btree.keys() {}),
626634
IterType::KeysRev => bench_fn(|| for _ in btree.keys().rev() {}),
627635
IterType::Values => bench_fn(|| for _ in btree.values() {}),

0 commit comments

Comments
 (0)