Port bank benchmark to Criterion

This commit is contained in:
Greg Fitzgerald 2018-07-10 16:30:56 -06:00 committed by Greg Fitzgerald
parent dfa05a8742
commit cc89801b12
2 changed files with 19 additions and 5 deletions

View File

@ -81,3 +81,10 @@ futures = "0.1.21"
clap = "2.31"
reqwest = "0.8.6"
influx_db_client = "0.3.4"
[dev-dependencies]
criterion = "0.2"
[[bench]]
name = "bank"
harness = false

View File

@ -1,20 +1,18 @@
#![feature(test)]
#[macro_use]
extern crate criterion;
extern crate bincode;
extern crate rayon;
extern crate solana;
extern crate test;
use bincode::serialize;
use criterion::{Bencher, Criterion};
use rayon::prelude::*;
use solana::bank::*;
use solana::hash::hash;
use solana::mint::Mint;
use solana::signature::{KeyPair, KeyPairUtil};
use solana::transaction::Transaction;
use test::Bencher;
#[bench]
fn bench_process_transaction(bencher: &mut Bencher) {
let mint = Mint::new(100_000_000);
let bank = Bank::new(&mint);
@ -47,5 +45,14 @@ fn bench_process_transaction(bencher: &mut Bencher) {
let results = bank.process_transactions(transactions.clone());
assert!(results.iter().all(Result::is_ok));
})
}
fn bench(criterion: &mut Criterion) {
criterion.bench_function("bench_process_transaction", |bencher| {
bench_process_transaction(bencher);
});
}
criterion_group!(benches, bench);
criterion_main!(benches);