Making Trie.iter non-recursive (#2733)

This commit is contained in:
Tomasz Drwięga
2016-10-20 14:49:44 +02:00
committed by Gav Wood
parent 906dcd7bfe
commit 0017a43364
2 changed files with 73 additions and 41 deletions

View File

@@ -21,7 +21,7 @@ extern crate ethcore_util;
#[macro_use]
extern crate log;
use test::Bencher;
use test::{Bencher, black_box};
use ethcore_util::hash::*;
use ethcore_util::bytes::*;
use ethcore_util::trie::*;
@@ -78,6 +78,32 @@ fn trie_insertions_32_mir_1k(b: &mut Bencher) {
});
// println!("hash_count: {}", hash_count);
}
#[bench]
fn trie_iter(b: &mut Bencher) {
let st = StandardMap {
alphabet: Alphabet::All,
min_key: 32,
journal_key: 0,
value_mode: ValueMode::Mirror,
count: 1000,
};
let d = st.make();
let mut memdb = MemoryDB::new();
let mut root = H256::new();
{
let mut t = TrieDBMut::new(&mut memdb, &mut root);
for i in d.iter() {
t.insert(&i.0, &i.1).unwrap();
}
}
b.iter(&mut ||{
let t = TrieDB::new(&memdb, &root).unwrap();
for n in t.iter().unwrap() {
black_box(n).unwrap();
}
});
}
#[bench]
fn triehash_insertions_32_mir_1k(b: &mut Bencher) {