sha256 benchmark added

This commit is contained in:
Manish Kumar 2023-11-09 21:23:52 +05:30
parent 3b2d87fd08
commit b2bdaac8b4
2 changed files with 59 additions and 38 deletions

View File

@ -2,8 +2,8 @@
use host::sha_bench;
use criterion::{criterion_group, criterion_main, Criterion};
use rand::RngCore;
fn sha256_1kb(c: &mut Criterion) {
c.bench_function("sha256_bench", |b| {
fn sha256_benchmarks(c: &mut Criterion) {
c.bench_function("Benchmarking sha256 on 1KB of random data:", |b| {
//generating 1kb of random data in a vector of u8
let mut data = [0u8; 64];
rand::thread_rng().fill_bytes(&mut data);
@ -12,34 +12,80 @@ fn sha256_1kb(c: &mut Criterion) {
// println!("{:?}", input);
b.iter(|| {
sha_bench(input.clone());
// hasher.update(data);
// black_box(hasher.finalize());
});
});
c.bench_function("sha256_bench", |b| {
//generating 1kb of random data in a vector of u8
let mut data = [0u8; 64];
c.bench_function("Benchmarking sha256 on 2KB of random data:", |b| {
//generating 2kb of random data in a vector of u8
let mut data = [0u8; 128];
rand::thread_rng().fill_bytes(&mut data);
let input: Vec<u8> = data.to_vec();
// println!("{:?}", input);
b.iter(|| {
sha_bench(input.clone());
// hasher.update(data);
// black_box(hasher.finalize());
});
});
c.bench_function("Benchmarking sha256 on 10KB of random data:", |b| {
//generating 10kb of random data in a vector of u8
let mut data = [0u8; 1280];
rand::thread_rng().fill_bytes(&mut data);
let input: Vec<u8> = data.to_vec();
b.iter(|| {
sha_bench(input.clone());
});
});
}
// fn sha256_benchmarks_2(c: &mut Criterion) {
// c.bench_function("Benchmarking sha256 on 1KB of random data:", |b| {
// //generating 1kb of random data in a vector of u8
// let mut data = [0u8; 64];
// rand::thread_rng().fill_bytes(&mut data);
// let input: Vec<u8> = data.to_vec();
// // println!("{:?}", input);
// b.iter(|| {
// sha_bench(input.clone());
// });
// });
// // c.bench_function("Benchmarking sha256 on 2KB of random data:", |b| {
// // //generating 2kb of random data in a vector of u8
// // let mut data = [0u8; 128];
// // rand::thread_rng().fill_bytes(&mut data);
// // let input: Vec<u8> = data.to_vec();
// // // println!("{:?}", input);
// // b.iter(|| {
// // sha_bench(input.clone());
// // });
// // });
// // c.bench_function("Benchmarking sha256 on 10KB of random data:", |b| {
// // //generating 10kb of random data in a vector of u8
// // let mut data = [0u8; 1280];
// // rand::thread_rng().fill_bytes(&mut data);
// // let input: Vec<u8> = data.to_vec();
// // b.iter(|| {
// // sha_bench(input.clone());
// // });
// // });
// }
criterion_group!(
name = benches;
// Setting the sample size to 10 for quick benchmarks
// Becuase running default number of samples(100) takes a lot of time
config = Criterion::default().sample_size(10);
targets = sha256_1kb
targets = sha256_benchmarks //, sha256_benchmarks_2
);
// criterion_group!(benches, sha256_bench);

View File

@ -37,35 +37,10 @@ pub fn sha_bench(input: Vec<u8>) {
// println!("output: {:?}", _output);
// Optional: Verify receipt to confirm that recipients will also be able to
// verify your receipt
// receipt.verify(METHOD_ID).unwrap();
receipt.verify(METHOD_ID).unwrap();
}
#[allow(dead_code)]
fn main() {
sha_bench(vec![97, 98, 99, 100, 101, 102, 103, 104]);
}
// #[cfg(test)]
// mod benches {
// extern crate criterion;
// use criterion::{black_box, criterion_group, criterion_main, Criterion};
// use crate::main as your_function_to_benchmark;
// // Your benchmark function
// fn my_benchmark(c: &mut Criterion) {
// c.bench_function("my_function", |b| {
// b.iter(|| {
// // Code to benchmark
// let result = your_function_to_benchmark();
// black_box(result);
// });
// });
// }
// // Define other benchmark functions here
// criterion_group!(benches, my_benchmark);
// criterion_main!(benches);
// }