67 lines
1.9 KiB
Rust
Raw Permalink Normal View History

2025-06-26 14:09:34 +02:00
use criterion::{black_box, criterion_group, criterion_main, Criterion};
2025-06-26 18:10:44 +02:00
use dynamic_data_experiments::{byte_data::{Params,Data}, encoder::{G8Encoder, BLSEncoder}};
use dynamic_data_experiments::encoder::BLSFieldEncoder;
use dynamic_data_experiments::field_matrix::Matrix;
2025-06-26 14:09:34 +02:00
use dynamic_data_experiments::traits::{DataMatrix, Encoder};
fn bench_rs_encode(c: &mut Criterion) {
// test parameters
let k = 100;
let p = 100;
let n = k + p;
let m = 200;
let params = Params { k, n, m };
// generate a random data matrix once
let data = Data::new_random(params.clone());
2025-06-26 18:10:44 +02:00
c.bench_function("G8Encoder::encode", |b| {
2025-06-26 14:09:34 +02:00
b.iter(|| {
// clone data for each iteration to avoid mutating the original
let mut d = black_box(data.clone());
2025-06-26 18:10:44 +02:00
G8Encoder::encode(&mut d).expect("encode failed");
2025-06-26 14:09:34 +02:00
});
});
}
fn bench_bls_encode(c: &mut Criterion) {
// test parameters
let k = 100;
let p = 100;
let n = k + p;
let m = 200;
let params = Params { k, n, m };
// generate a random data matrix once
let data = Data::new_random(params.clone());
c.bench_function("BLSEncoder::encode", |b| {
b.iter(|| {
let mut d = black_box(data.clone());
BLSEncoder::encode(&mut d).expect("encode failed");
});
});
}
2025-06-26 18:10:44 +02:00
fn bench_bls_field_encode(c: &mut Criterion) {
// test parameters
let k = 100;
let p = 100;
let n = k + p;
let m = 200;
let params = Params { k, n, m };
// generate a random data matrix once
let data = Matrix::new_random(params.clone());
c.bench_function("BLSFieldEncoder::encode", |b| {
b.iter(|| {
let mut d = black_box(data.clone());
BLSFieldEncoder::encode(&mut d).expect("encode failed");
});
});
}
criterion_group!(benches, bench_rs_encode, bench_bls_encode, bench_bls_field_encode);
2025-06-26 14:09:34 +02:00
criterion_main!(benches);