diff options
| author | Stein Somers <git@steinsomers.be> | 2020-01-23 21:58:55 +0100 |
|---|---|---|
| committer | Stein Somers <git@steinsomers.be> | 2020-02-07 00:57:54 +0100 |
| commit | be051adb57f1ff28edf997c3379aed2934bff104 (patch) | |
| tree | 902c2fed33da4d4bd0450d6423f3c0d49b4ebe57 /src/liballoc | |
| parent | fc07615c49259b16e1d1789e23050e71b744c652 (diff) | |
| download | rust-be051adb57f1ff28edf997c3379aed2934bff104.tar.gz rust-be051adb57f1ff28edf997c3379aed2934bff104.zip | |
Create benchmarks for BTreeMap::range
Diffstat (limited to 'src/liballoc')
| -rw-r--r-- | src/liballoc/benches/btree/map.rs | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/src/liballoc/benches/btree/map.rs b/src/liballoc/benches/btree/map.rs index ea69769279f..83cdebf0e3f 100644 --- a/src/liballoc/benches/btree/map.rs +++ b/src/liballoc/benches/btree/map.rs @@ -1,5 +1,6 @@ use std::collections::BTreeMap; use std::iter::Iterator; +use std::ops::Bound::{Excluded, Unbounded}; use std::vec::Vec; use rand::{seq::SliceRandom, thread_rng, Rng}; @@ -200,3 +201,58 @@ pub fn first_and_last_100(b: &mut Bencher) { pub fn first_and_last_10k(b: &mut Bencher) { bench_first_and_last(b, 10_000); } + +#[bench] +pub fn range_excluded_excluded(b: &mut Bencher) { + let size = 144; + let map: BTreeMap<_, _> = (0..size).map(|i| (i, i)).collect(); + b.iter(|| { + for first in 0..size { + for last in first + 1..size { + black_box(map.range((Excluded(first), Excluded(last)))); + } + } + }); +} + +#[bench] +pub fn range_excluded_unbounded(b: &mut Bencher) { + let size = 144; + let map: BTreeMap<_, _> = (0..size).map(|i| (i, i)).collect(); + b.iter(|| { + for first in 0..size { + black_box(map.range((Excluded(first), Unbounded))); + } + }); +} + +#[bench] +pub fn range_included_included(b: &mut Bencher) { + let size = 144; + let map: BTreeMap<_, _> = (0..size).map(|i| (i, i)).collect(); + b.iter(|| { + for first in 0..size { + for last in first..size { + black_box(map.range(first..=last)); + } + } + }); +} + +#[bench] +pub fn range_included_unbounded(b: &mut Bencher) { + let size = 144; + let map: BTreeMap<_, _> = (0..size).map(|i| (i, i)).collect(); + b.iter(|| { + for first in 0..size { + black_box(map.range(first..)); + } + }); +} + +#[bench] +pub fn range_unbounded_unbounded(b: &mut Bencher) { + let size = 144; + let map: BTreeMap<_, _> = (0..size).map(|i| (i, i)).collect(); + b.iter(|| map.range(..)); +} |
