Skip to content

Commit 3395f9d

Browse files
committed
std::trie: Add some iteration/search benchmarks.
1 parent fe03cae commit 3395f9d

File tree

1 file changed

+60
-0
lines changed

1 file changed

+60
-0
lines changed

src/libstd/trie.rs

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -828,6 +828,66 @@ mod test_map {
828828
}
829829
}
830830

831+
#[cfg(test)]
832+
mod bench_map {
833+
use super::*;
834+
use prelude::*;
835+
use rand::{weak_rng, Rng};
836+
use extra::test::BenchHarness;
837+
838+
#[bench]
839+
fn bench_iter_small(bh: &mut BenchHarness) {
840+
let mut m = TrieMap::<uint>::new();
841+
let mut rng = weak_rng();
842+
for _ in range(0, 20) {
843+
m.insert(rng.gen(), rng.gen());
844+
}
845+
846+
bh.iter(|| for _ in m.iter() {})
847+
}
848+
849+
#[bench]
850+
fn bench_iter_large(bh: &mut BenchHarness) {
851+
let mut m = TrieMap::<uint>::new();
852+
let mut rng = weak_rng();
853+
for _ in range(0, 1000) {
854+
m.insert(rng.gen(), rng.gen());
855+
}
856+
857+
bh.iter(|| for _ in m.iter() {})
858+
}
859+
860+
#[bench]
861+
fn bench_lower_bound(bh: &mut BenchHarness) {
862+
let mut m = TrieMap::<uint>::new();
863+
let mut rng = weak_rng();
864+
for _ in range(0, 1000) {
865+
m.insert(rng.gen(), rng.gen());
866+
}
867+
868+
bh.iter(|| {
869+
for _ in range(0, 10) {
870+
m.lower_bound(rng.gen());
871+
}
872+
});
873+
}
874+
875+
#[bench]
876+
fn bench_upper_bound(bh: &mut BenchHarness) {
877+
let mut m = TrieMap::<uint>::new();
878+
let mut rng = weak_rng();
879+
for _ in range(0, 1000) {
880+
m.insert(rng.gen(), rng.gen());
881+
}
882+
883+
bh.iter(|| {
884+
for _ in range(0, 10) {
885+
m.upper_bound(rng.gen());
886+
}
887+
});
888+
}
889+
}
890+
831891
#[cfg(test)]
832892
mod test_set {
833893
use super::*;

0 commit comments

Comments
 (0)