diff options
| author | Huon Wilson <dbau.pp+github@gmail.com> | 2014-01-07 01:42:55 +1100 |
|---|---|---|
| committer | Huon Wilson <dbau.pp+github@gmail.com> | 2014-01-08 00:31:24 +1100 |
| commit | 3395f9d6a10aa912ab88de2e8d5b4f7de407413a (patch) | |
| tree | 1766590b687fd0a9fd1a4149ff575b20cf392928 /src/libstd | |
| parent | fe03caedf0d2e32c41bb1c5169fb0162c8af6b28 (diff) | |
| download | rust-3395f9d6a10aa912ab88de2e8d5b4f7de407413a.tar.gz rust-3395f9d6a10aa912ab88de2e8d5b4f7de407413a.zip | |
std::trie: Add some iteration/search benchmarks.
Diffstat (limited to 'src/libstd')
| -rw-r--r-- | src/libstd/trie.rs | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/src/libstd/trie.rs b/src/libstd/trie.rs index b6995a1d24c..94b7b881ea0 100644 --- a/src/libstd/trie.rs +++ b/src/libstd/trie.rs @@ -829,6 +829,66 @@ mod test_map { } #[cfg(test)] +mod bench_map { + use super::*; + use prelude::*; + use rand::{weak_rng, Rng}; + use extra::test::BenchHarness; + + #[bench] + fn bench_iter_small(bh: &mut BenchHarness) { + let mut m = TrieMap::<uint>::new(); + let mut rng = weak_rng(); + for _ in range(0, 20) { + m.insert(rng.gen(), rng.gen()); + } + + bh.iter(|| for _ in m.iter() {}) + } + + #[bench] + fn bench_iter_large(bh: &mut BenchHarness) { + let mut m = TrieMap::<uint>::new(); + let mut rng = weak_rng(); + for _ in range(0, 1000) { + m.insert(rng.gen(), rng.gen()); + } + + bh.iter(|| for _ in m.iter() {}) + } + + #[bench] + fn bench_lower_bound(bh: &mut BenchHarness) { + let mut m = TrieMap::<uint>::new(); + let mut rng = weak_rng(); + for _ in range(0, 1000) { + m.insert(rng.gen(), rng.gen()); + } + + bh.iter(|| { + for _ in range(0, 10) { + m.lower_bound(rng.gen()); + } + }); + } + + #[bench] + fn bench_upper_bound(bh: &mut BenchHarness) { + let mut m = TrieMap::<uint>::new(); + let mut rng = weak_rng(); + for _ in range(0, 1000) { + m.insert(rng.gen(), rng.gen()); + } + + bh.iter(|| { + for _ in range(0, 10) { + m.upper_bound(rng.gen()); + } + }); + } +} + +#[cfg(test)] mod test_set { use super::*; use prelude::*; |
