diff options
| author | Huon Wilson <dbau.pp+github@gmail.com> | 2014-01-15 11:32:53 +1100 |
|---|---|---|
| committer | Huon Wilson <dbau.pp+github@gmail.com> | 2014-01-15 11:32:53 +1100 |
| commit | 6b5e63ff2d0af07aae5a5c99ce9b1595e74fbc1f (patch) | |
| tree | 5f1f480aa354d463b033c1ce1493fca9cd737fdf /src/libstd | |
| parent | dd8b011319f5cfbfb3329d9dad185be884f3a4d6 (diff) | |
| download | rust-6b5e63ff2d0af07aae5a5c99ce9b1595e74fbc1f.tar.gz rust-6b5e63ff2d0af07aae5a5c99ce9b1595e74fbc1f.zip | |
std::trie: add benchmarks for insert.
Diffstat (limited to 'src/libstd')
| -rw-r--r-- | src/libstd/trie.rs | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/src/libstd/trie.rs b/src/libstd/trie.rs index d864cde2953..7987e25a2f3 100644 --- a/src/libstd/trie.rs +++ b/src/libstd/trie.rs @@ -886,6 +886,54 @@ mod bench_map { } }); } + + #[bench] + fn bench_insert_large(bh: &mut BenchHarness) { + let mut m = TrieMap::<[uint, .. 10]>::new(); + let mut rng = weak_rng(); + + bh.iter(|| { + for _ in range(0, 1000) { + m.insert(rng.gen(), [1, .. 10]); + } + }) + } + #[bench] + fn bench_insert_large_low_bits(bh: &mut BenchHarness) { + let mut m = TrieMap::<[uint, .. 10]>::new(); + let mut rng = weak_rng(); + + bh.iter(|| { + for _ in range(0, 1000) { + // only have the last few bits set. + m.insert(rng.gen::<uint>() & 0xff_ff, [1, .. 10]); + } + }) + } + + #[bench] + fn bench_insert_small(bh: &mut BenchHarness) { + let mut m = TrieMap::<()>::new(); + let mut rng = weak_rng(); + + bh.iter(|| { + for _ in range(0, 1000) { + m.insert(rng.gen(), ()); + } + }) + } + #[bench] + fn bench_insert_small_low_bits(bh: &mut BenchHarness) { + let mut m = TrieMap::<()>::new(); + let mut rng = weak_rng(); + + bh.iter(|| { + for _ in range(0, 1000) { + // only have the last few bits set. + m.insert(rng.gen::<uint>() & 0xff_ff, ()); + } + }) + } } #[cfg(test)] |
