From 00499b3441a68aba566f906ac79687f00aab8e1d Mon Sep 17 00:00:00 2001 From: Jack Grigg Date: Thu, 19 Dec 2019 16:11:11 -0600 Subject: [PATCH] Migrate zcash_primitives benchmarks to criterion --- Cargo.lock | 1 + zcash_primitives/Cargo.toml | 5 +++++ zcash_primitives/benches/pedersen_hash.rs | 18 ++++++++---------- 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index bc9a901..032e7e5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -968,6 +968,7 @@ dependencies = [ "blake2b_simd 0.5.8 (registry+https://github.com/rust-lang/crates.io-index)", "blake2s_simd 0.5.8 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "criterion 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "crypto_api_chachapoly 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "ff 0.5.0", "fpe 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", diff --git a/zcash_primitives/Cargo.toml b/zcash_primitives/Cargo.toml index 8ebbbb2..fdfc573 100644 --- a/zcash_primitives/Cargo.toml +++ b/zcash_primitives/Cargo.toml @@ -31,11 +31,16 @@ sha2 = "0.8" subtle = "2.2.1" [dev-dependencies] +criterion = "0.3" hex-literal = "0.2" rand_xorshift = "0.2" [features] transparent-inputs = ["ripemd160", "secp256k1"] +[[bench]] +name = "pedersen_hash" +harness = false + [badges] maintenance = { status = "actively-developed" } diff --git a/zcash_primitives/benches/pedersen_hash.rs b/zcash_primitives/benches/pedersen_hash.rs index 3ea652a..6510936 100644 --- a/zcash_primitives/benches/pedersen_hash.rs +++ b/zcash_primitives/benches/pedersen_hash.rs @@ -1,17 +1,10 @@ -#![feature(test)] - -extern crate pairing; -extern crate rand_core; -extern crate test; -extern crate zcash_primitives; - +use criterion::{criterion_group, criterion_main, Criterion}; use pairing::bls12_381::Bls12; use rand_core::{OsRng, RngCore}; use zcash_primitives::jubjub::JubjubBls12; use zcash_primitives::pedersen_hash::{pedersen_hash, Personalization}; -#[bench] -fn bench_pedersen_hash(b: &mut test::Bencher) { +fn bench_pedersen_hash(c: &mut Criterion) { let params = JubjubBls12::new(); let rng = &mut OsRng; let bits = (0..510) @@ -19,5 +12,10 @@ fn bench_pedersen_hash(b: &mut test::Bencher) { .collect::>(); let personalization = Personalization::MerkleTree(31); - b.iter(|| pedersen_hash::(personalization, bits.clone(), ¶ms)); + c.bench_function("Pedersen hash", |b| { + b.iter(|| pedersen_hash::(personalization, bits.clone(), ¶ms)) + }); } + +criterion_group!(benches, bench_pedersen_hash); +criterion_main!(benches);