Skip to content

Commit fc45b1d

Browse files
committed
Add benchmarking using criterion
1 parent 1d08e19 commit fc45b1d

File tree

3 files changed

+29
-11
lines changed

3 files changed

+29
-11
lines changed

Cargo.toml

+5
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,8 @@ env_logger = "0.7"
1818
primitive-types = "0.6"
1919
ssz = "0.1.2"
2020
ssz-derive = "0.1.2"
21+
criterion = "0.2"
22+
23+
[[bench]]
24+
name = "scout_bench"
25+
harness = false

scripts/bazaar/Cargo.toml

+1
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,4 @@ crate-type = ["cdylib"]
2020
[profile.release]
2121
lto = true
2222
debug = false
23+
opt-level = 3

src/main.rs

+23-11
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ type DepositBlob = Vec<u8>;
8686
struct Runtime<'a> {
8787
code: &'a [u8],
8888
ticks_left: u32,
89-
pub memory: Option<MemoryRef>,
89+
memory: Option<MemoryRef>,
9090
pre_state: &'a Bytes32,
9191
block_data: &'a ShardBlockBody,
9292
post_state: Bytes32,
@@ -869,16 +869,28 @@ fn process_yaml_test(filename: &str) -> Result<(), ScoutError> {
869869
Ok(())
870870
}
871871

872-
fn main() {
873-
env_logger::init();
872+
#[macro_use]
873+
extern crate criterion;
874874

875-
let args: Vec<String> = env::args().collect();
876-
let ret = process_yaml_test(if args.len() != 2 {
877-
"test.yaml"
878-
} else {
879-
&args[1]
875+
use criterion::black_box;
876+
use criterion::Criterion;
877+
878+
fn criterion_benchmark(c: &mut Criterion) {
879+
env_logger::init();
880+
c.bench_function("test", |b| {
881+
b.iter(|| {
882+
let args: Vec<String> = env::args().collect();
883+
let ret = process_yaml_test(if args.len() != 2 {
884+
"test.yaml"
885+
} else {
886+
&args[1]
887+
});
888+
if ret.is_err() {
889+
println!("Unexpected test failure: {:?}", ret.err().unwrap())
890+
}
891+
})
880892
});
881-
if ret.is_err() {
882-
println!("Unexpected test failure: {:?}", ret.err().unwrap())
883-
}
884893
}
894+
895+
criterion_group!(benches, criterion_benchmark);
896+
criterion_main!(benches);

0 commit comments

Comments
 (0)