@@ -21,12 +21,13 @@ use std::fs;
21
21
fn interpret_benchmark ( c : & mut Criterion ) {
22
22
c. bench_function ( "interpret secp256k1_bench" , |b| {
23
23
let buffer = fs:: read ( "benches/data/secp256k1_bench" ) . unwrap ( ) . into ( ) ;
24
- let args: Vec < Bytes > = vec ! [ "secp256k1_bench" ,
25
- "033f8cf9c4d51a33206a6c1c6b27d2cc5129daa19dbd1fc148d395284f6b26411f" ,
26
- "304402203679d909f43f073c7c1dcf8468a485090589079ee834e6eed92fea9b09b06a2402201e46f1075afa18f306715e7db87493e7b7e779569aa13c64ab3d09980b3560a3" ,
27
- "foo" ,
28
- "bar" ] . into_iter ( ) . map ( |a| a. into ( ) ) . collect ( ) ;
29
-
24
+ let args: Vec < Bytes > = vec ! [
25
+ "secp256k1_bench" ,
26
+ "033f8cf9c4d51a33206a6c1c6b27d2cc5129daa19dbd1fc148d395284f6b26411f" ,
27
+ "304402203679d909f43f073c7c1dcf8468a485090589079ee834e6eed92fea9b09b06a2402201e46f1075afa18f306715e7db87493e7b7e779569aa13c64ab3d09980b3560a3" ,
28
+ "foo" ,
29
+ "bar"
30
+ ] . into_iter ( ) . map ( |a| a. into ( ) ) . collect ( ) ;
30
31
b. iter ( || run :: < u64 , SparseMemory < u64 > > ( & buffer, & args[ ..] ) . unwrap ( ) ) ;
31
32
} ) ;
32
33
}
@@ -35,17 +36,18 @@ fn interpret_benchmark(c: &mut Criterion) {
35
36
fn asm_benchmark ( c : & mut Criterion ) {
36
37
c. bench_function ( "interpret secp256k1_bench via assembly" , |b| {
37
38
let buffer = fs:: read ( "benches/data/secp256k1_bench" ) . unwrap ( ) . into ( ) ;
38
- let args: Vec < Bytes > = vec ! [ "secp256k1_bench" ,
39
- "033f8cf9c4d51a33206a6c1c6b27d2cc5129daa19dbd1fc148d395284f6b26411f" ,
40
- "304402203679d909f43f073c7c1dcf8468a485090589079ee834e6eed92fea9b09b06a2402201e46f1075afa18f306715e7db87493e7b7e779569aa13c64ab3d09980b3560a3" ,
41
- "foo" ,
42
- "bar" ] . into_iter ( ) . map ( |a| a. into ( ) ) . collect ( ) ;
43
-
39
+ let args = [
40
+ "secp256k1_bench" ,
41
+ "033f8cf9c4d51a33206a6c1c6b27d2cc5129daa19dbd1fc148d395284f6b26411f" ,
42
+ "304402203679d909f43f073c7c1dcf8468a485090589079ee834e6eed92fea9b09b06a2402201e46f1075afa18f306715e7db87493e7b7e779569aa13c64ab3d09980b3560a3" ,
43
+ "foo" ,
44
+ "bar" ,
45
+ ] . into_iter ( ) . map ( |a| Ok ( a. into ( ) ) ) ;
44
46
b. iter ( || {
45
47
let asm_core = AsmCoreMachine :: new ( ISA_IMC , VERSION0 , u64:: MAX ) ;
46
48
let core = DefaultMachineBuilder :: new ( asm_core) . build ( ) ;
47
49
let mut machine = AsmMachine :: new ( core) ;
48
- machine. load_program ( & buffer, & args[ .. ] ) . unwrap ( ) ;
50
+ machine. load_program ( & buffer, args. clone ( ) ) . unwrap ( ) ;
49
51
machine. run ( ) . unwrap ( )
50
52
} ) ;
51
53
} ) ;
@@ -55,17 +57,19 @@ fn asm_benchmark(c: &mut Criterion) {
55
57
fn mop_benchmark ( c : & mut Criterion ) {
56
58
c. bench_function ( "interpret secp256k1_bench via assembly mop" , |b| {
57
59
let buffer = fs:: read ( "benches/data/secp256k1_bench" ) . unwrap ( ) . into ( ) ;
58
- let args: Vec < Bytes > = vec ! [ "secp256k1_bench" ,
59
- "033f8cf9c4d51a33206a6c1c6b27d2cc5129daa19dbd1fc148d395284f6b26411f" ,
60
- "304402203679d909f43f073c7c1dcf8468a485090589079ee834e6eed92fea9b09b06a2402201e46f1075afa18f306715e7db87493e7b7e779569aa13c64ab3d09980b3560a3" ,
61
- "foo" ,
62
- "bar" ] . into_iter ( ) . map ( |a| a. into ( ) ) . collect ( ) ;
60
+ let args = [
61
+ "secp256k1_bench" ,
62
+ "033f8cf9c4d51a33206a6c1c6b27d2cc5129daa19dbd1fc148d395284f6b26411f" ,
63
+ "304402203679d909f43f073c7c1dcf8468a485090589079ee834e6eed92fea9b09b06a2402201e46f1075afa18f306715e7db87493e7b7e779569aa13c64ab3d09980b3560a3" ,
64
+ "foo" ,
65
+ "bar" ,
66
+ ] . into_iter ( ) . map ( |a| Ok ( a. into ( ) ) ) ;
63
67
b. iter ( || {
64
68
let asm_core = AsmCoreMachine :: new ( ISA_IMC | ISA_B | ISA_MOP , VERSION2 , u64:: MAX ) ;
65
69
let core = DefaultMachineBuilder :: < Box < AsmCoreMachine > > :: new ( asm_core)
66
70
. build ( ) ;
67
71
let mut machine = AsmMachine :: new ( core) ;
68
- machine. load_program ( & buffer, & args) . unwrap ( ) ;
72
+ machine. load_program ( & buffer, args. clone ( ) ) . unwrap ( ) ;
69
73
machine. run ( ) . unwrap ( )
70
74
} ) ;
71
75
} ) ;
@@ -77,25 +81,27 @@ fn mop_memoized_benchmark(c: &mut Criterion) {
77
81
let isa = ISA_IMC | ISA_B | ISA_MOP ;
78
82
let version = VERSION2 ;
79
83
let buffer = fs:: read ( "benches/data/secp256k1_bench" ) . unwrap ( ) . into ( ) ;
80
- let args: Vec < Bytes > = vec ! [ "secp256k1_bench" ,
81
- "033f8cf9c4d51a33206a6c1c6b27d2cc5129daa19dbd1fc148d395284f6b26411f" ,
82
- "304402203679d909f43f073c7c1dcf8468a485090589079ee834e6eed92fea9b09b06a2402201e46f1075afa18f306715e7db87493e7b7e779569aa13c64ab3d09980b3560a3" ,
83
- "foo" ,
84
- "bar" ] . into_iter ( ) . map ( |a| a. into ( ) ) . collect ( ) ;
84
+ let args = [
85
+ "secp256k1_bench" ,
86
+ "033f8cf9c4d51a33206a6c1c6b27d2cc5129daa19dbd1fc148d395284f6b26411f" ,
87
+ "304402203679d909f43f073c7c1dcf8468a485090589079ee834e6eed92fea9b09b06a2402201e46f1075afa18f306715e7db87493e7b7e779569aa13c64ab3d09980b3560a3" ,
88
+ "foo" ,
89
+ "bar" ,
90
+ ] . into_iter ( ) . map ( |a| Ok ( a. into ( ) ) ) ;
85
91
let mut decoder = MemoizedFixedTraceDecoder :: new ( build_decoder :: < u64 > ( isa, version) ) ;
86
92
let asm_core = AsmCoreMachine :: new ( isa, version, u64:: MAX ) ;
87
93
let core = DefaultMachineBuilder :: < Box < AsmCoreMachine > > :: new ( asm_core)
88
94
. build ( ) ;
89
95
let mut machine = AsmMachine :: new ( core) ;
90
- machine. load_program ( & buffer, & args) . unwrap ( ) ;
96
+ machine. load_program ( & buffer, args. clone ( ) ) . unwrap ( ) ;
91
97
machine. run_with_decoder ( & mut decoder) . unwrap ( ) ;
92
98
93
99
b. iter ( || {
94
100
let asm_core = AsmCoreMachine :: new ( isa, version, u64:: MAX ) ;
95
101
let core = DefaultMachineBuilder :: < Box < AsmCoreMachine > > :: new ( asm_core)
96
102
. build ( ) ;
97
103
let mut machine = AsmMachine :: new ( core) ;
98
- machine. load_program ( & buffer, & args) . unwrap ( ) ;
104
+ machine. load_program ( & buffer, args. clone ( ) ) . unwrap ( ) ;
99
105
decoder. clear_traces ( ) ;
100
106
machine. run_with_decoder ( & mut decoder) . unwrap ( )
101
107
} ) ;
@@ -108,25 +114,27 @@ fn mop_memoized_dynamic_benchmark(c: &mut Criterion) {
108
114
let isa = ISA_IMC | ISA_B | ISA_MOP ;
109
115
let version = VERSION2 ;
110
116
let buffer = fs:: read ( "benches/data/secp256k1_bench" ) . unwrap ( ) . into ( ) ;
111
- let args: Vec < Bytes > = vec ! [ "secp256k1_bench" ,
112
- "033f8cf9c4d51a33206a6c1c6b27d2cc5129daa19dbd1fc148d395284f6b26411f" ,
113
- "304402203679d909f43f073c7c1dcf8468a485090589079ee834e6eed92fea9b09b06a2402201e46f1075afa18f306715e7db87493e7b7e779569aa13c64ab3d09980b3560a3" ,
114
- "foo" ,
115
- "bar" ] . into_iter ( ) . map ( |a| a. into ( ) ) . collect ( ) ;
117
+ let args = [
118
+ "secp256k1_bench" ,
119
+ "033f8cf9c4d51a33206a6c1c6b27d2cc5129daa19dbd1fc148d395284f6b26411f" ,
120
+ "304402203679d909f43f073c7c1dcf8468a485090589079ee834e6eed92fea9b09b06a2402201e46f1075afa18f306715e7db87493e7b7e779569aa13c64ab3d09980b3560a3" ,
121
+ "foo" ,
122
+ "bar" ,
123
+ ] . into_iter ( ) . map ( |a| Ok ( a. into ( ) ) ) ;
116
124
let mut decoder = MemoizedDynamicTraceDecoder :: new ( build_decoder :: < u64 > ( isa, version) ) ;
117
125
let asm_core = AsmCoreMachine :: new ( isa, version, u64:: MAX ) ;
118
126
let core = DefaultMachineBuilder :: < Box < AsmCoreMachine > > :: new ( asm_core)
119
127
. build ( ) ;
120
128
let mut machine = AsmMachine :: new ( core) ;
121
- machine. load_program ( & buffer, & args) . unwrap ( ) ;
129
+ machine. load_program ( & buffer, args. clone ( ) ) . unwrap ( ) ;
122
130
machine. run_with_decoder ( & mut decoder) . unwrap ( ) ;
123
131
124
132
b. iter ( || {
125
133
let asm_core = AsmCoreMachine :: new ( isa, version, u64:: MAX ) ;
126
134
let core = DefaultMachineBuilder :: < Box < AsmCoreMachine > > :: new ( asm_core)
127
135
. build ( ) ;
128
136
let mut machine = AsmMachine :: new ( core) ;
129
- machine. load_program ( & buffer, & args) . unwrap ( ) ;
137
+ machine. load_program ( & buffer, args. clone ( ) ) . unwrap ( ) ;
130
138
decoder. clear_traces ( ) ;
131
139
machine. run_with_decoder ( & mut decoder) . unwrap ( )
132
140
} ) ;
0 commit comments