14
14
15
15
//! Standard trie benchmarking tool.
16
16
17
- use criterion:: { black_box, Criterion , Fun } ;
17
+ use criterion:: { black_box, BenchmarkId , Criterion } ;
18
18
use hash_db:: Hasher ;
19
19
use keccak_hasher:: KeccakHasher ;
20
20
use memory_db:: { HashKey , MemoryDB } ;
@@ -44,11 +44,20 @@ fn benchmark<L: TrieLayout, S: TrieStream>(
44
44
) where
45
45
<L :: Hash as Hasher >:: Out : ' static ,
46
46
{
47
- let funs = vec ! [
48
- Fun :: new( "Closed" , |b, d: & TrieInsertionList | {
47
+ let bench_size = content. len ( ) ;
48
+ let bench_list = & TrieInsertionList ( content) ;
49
+ let mut g = b. benchmark_group ( name) ;
50
+ g. bench_with_input (
51
+ BenchmarkId :: new ( "Closed" , bench_size) ,
52
+ bench_list,
53
+ |b, d : & TrieInsertionList | {
49
54
b. iter ( & mut || trie_root :: < L :: Hash , S , _ , _ , _ > ( d. 0 . clone ( ) , Default :: default ( ) ) )
50
- } ) ,
51
- Fun :: new( "Fill" , |b, d: & TrieInsertionList | {
55
+ } ,
56
+ ) ;
57
+ g. bench_with_input (
58
+ BenchmarkId :: new ( "Fill" , bench_size) ,
59
+ bench_list,
60
+ |b, d : & TrieInsertionList | {
52
61
b. iter ( & mut || {
53
62
let mut memdb = MemoryDB :: < _ , HashKey < L :: Hash > , _ > :: new ( L :: Codec :: empty_node ( ) ) ;
54
63
let mut root = <TrieHash < L > >:: default ( ) ;
@@ -57,8 +66,12 @@ fn benchmark<L: TrieLayout, S: TrieStream>(
57
66
t. insert ( & i. 0 , & i. 1 ) . unwrap ( ) ;
58
67
}
59
68
} )
60
- } ) ,
61
- Fun :: new( "Iter" , |b, d: & TrieInsertionList | {
69
+ } ,
70
+ ) ;
71
+ g. bench_with_input (
72
+ BenchmarkId :: new ( "Iter" , bench_size) ,
73
+ bench_list,
74
+ |b, d : & TrieInsertionList | {
62
75
let mut memdb = MemoryDB :: < _ , HashKey < _ > , _ > :: new ( L :: Codec :: empty_node ( ) ) ;
63
76
let mut root = <TrieHash < L > >:: default ( ) ;
64
77
{
@@ -73,10 +86,8 @@ fn benchmark<L: TrieLayout, S: TrieStream>(
73
86
black_box ( n) . unwrap ( ) ;
74
87
}
75
88
} )
76
- } ) ,
77
- ] ;
78
-
79
- b. bench_functions ( name, funs, TrieInsertionList ( content) ) ;
89
+ } ,
90
+ ) ;
80
91
}
81
92
82
93
fn random_word (
0 commit comments