Skip to content

Commit 6b5e63f

Browse files
committed
std::trie: add benchmarks for insert.
1 parent dd8b011 commit 6b5e63f

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed

src/libstd/trie.rs

+48
Original file line numberDiff line numberDiff line change
@@ -886,6 +886,54 @@ mod bench_map {
886886
}
887887
});
888888
}
889+
890+
#[bench]
891+
fn bench_insert_large(bh: &mut BenchHarness) {
892+
let mut m = TrieMap::<[uint, .. 10]>::new();
893+
let mut rng = weak_rng();
894+
895+
bh.iter(|| {
896+
for _ in range(0, 1000) {
897+
m.insert(rng.gen(), [1, .. 10]);
898+
}
899+
})
900+
}
901+
#[bench]
902+
fn bench_insert_large_low_bits(bh: &mut BenchHarness) {
903+
let mut m = TrieMap::<[uint, .. 10]>::new();
904+
let mut rng = weak_rng();
905+
906+
bh.iter(|| {
907+
for _ in range(0, 1000) {
908+
// only have the last few bits set.
909+
m.insert(rng.gen::<uint>() & 0xff_ff, [1, .. 10]);
910+
}
911+
})
912+
}
913+
914+
#[bench]
915+
fn bench_insert_small(bh: &mut BenchHarness) {
916+
let mut m = TrieMap::<()>::new();
917+
let mut rng = weak_rng();
918+
919+
bh.iter(|| {
920+
for _ in range(0, 1000) {
921+
m.insert(rng.gen(), ());
922+
}
923+
})
924+
}
925+
#[bench]
926+
fn bench_insert_small_low_bits(bh: &mut BenchHarness) {
927+
let mut m = TrieMap::<()>::new();
928+
let mut rng = weak_rng();
929+
930+
bh.iter(|| {
931+
for _ in range(0, 1000) {
932+
// only have the last few bits set.
933+
m.insert(rng.gen::<uint>() & 0xff_ff, ());
934+
}
935+
})
936+
}
889937
}
890938

891939
#[cfg(test)]

0 commit comments

Comments
 (0)