Mercurial > lbo > hg > leveldb-rs
changeset 503:4d1d8ff2ed19
bench: Add benchmark for BTreeMap
author | Lewin Bormann <lbo@spheniscida.de> |
---|---|
date | Sun, 16 Feb 2020 11:28:17 +0100 |
parents | cd65e1fd5346 |
children | e9ac2dccb9fd |
files | src/benches/maps_bench.rs |
diffstat | 1 files changed, 31 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/benches/maps_bench.rs Sun Feb 16 11:28:07 2020 +0100 +++ b/src/benches/maps_bench.rs Sun Feb 16 11:28:17 2020 +0100 @@ -13,6 +13,7 @@ use rusty_leveldb::SkipMap; use std::collections::HashMap; +use std::collections::BTreeMap; use std::rc::Rc; fn gen_key_val<R: Rng>(gen: &mut R, keylen: usize, vallen: usize) -> (Vec<u8>, Vec<u8>) { @@ -93,10 +94,39 @@ }); } +fn bench_btree_insert(b: &mut Bencher) { + let mut gen = rand::thread_rng(); + let mut btm = BTreeMap::new(); + + b.iter(|| { + let (mut k, v) = gen_key_val(&mut gen, 10, 10); + btm.insert(k.clone(), v.clone()); + k[9] += 1; + btm.insert(k.clone(), v.clone()); + k[9] += 1; + btm.insert(k.clone(), v.clone()); + k[9] += 1; + btm.insert(k.clone(), v.clone()); + k[9] += 1; + btm.insert(k.clone(), v.clone()); + k[9] += 1; + btm.insert(k.clone(), v.clone()); + k[9] += 1; + btm.insert(k.clone(), v.clone()); + k[9] += 1; + btm.insert(k.clone(), v.clone()); + k[9] += 1; + btm.insert(k.clone(), v.clone()); + k[9] += 1; + btm.insert(k, v); + }); +} + benchmark_group!( basic, bench_gen_key_val, bench_skipmap_insert, - bench_hashmap_insert + bench_hashmap_insert, + bench_btree_insert, ); benchmark_main!(basic);