about summary refs log tree commit diff
path: root/src/libstd
diff options
context:
space:
mode:
authorHuon Wilson <dbau.pp+github@gmail.com>2014-01-15 11:32:53 +1100
committerHuon Wilson <dbau.pp+github@gmail.com>2014-01-15 11:32:53 +1100
commit6b5e63ff2d0af07aae5a5c99ce9b1595e74fbc1f (patch)
tree5f1f480aa354d463b033c1ce1493fca9cd737fdf /src/libstd
parentdd8b011319f5cfbfb3329d9dad185be884f3a4d6 (diff)
downloadrust-6b5e63ff2d0af07aae5a5c99ce9b1595e74fbc1f.tar.gz
rust-6b5e63ff2d0af07aae5a5c99ce9b1595e74fbc1f.zip
std::trie: add benchmarks for insert.
Diffstat (limited to 'src/libstd')
-rw-r--r--src/libstd/trie.rs48
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)]