Skip to content

Commit

Permalink
Cleanup benchmark code (#431)
Browse files Browse the repository at this point in the history
  • Loading branch information
wcampbell0x2a authored Apr 29, 2024
1 parent 6df1a1b commit c7b4d02
Showing 1 changed file with 11 additions and 38 deletions.
49 changes: 11 additions & 38 deletions benches/deku.rs
Original file line number Diff line number Diff line change
Expand Up @@ -34,54 +34,27 @@ struct DekuVec {
data: Vec<u8>,
}

fn deku_read_bits(mut reader: impl Read) {
let mut reader = Reader::new(&mut reader);
let _v = DekuBits::from_reader_with_ctx(&mut reader, ()).unwrap();
}

fn deku_write_bits(input: &DekuBits) {
let _v = input.to_bytes().unwrap();
}

fn deku_read_byte(mut reader: impl Read) {
let mut reader = Reader::new(&mut reader);
let _v = DekuBytes::from_reader_with_ctx(&mut reader, ()).unwrap();
}

fn deku_write_byte(input: &DekuBytes) {
fn deku_write<T: DekuContainerWrite>(input: &T) {
let _v = input.to_bytes().unwrap();
}

fn deku_read_enum(mut reader: impl Read) {
fn deku_read<T: for<'a> DekuContainerRead<'a>>(mut reader: impl Read) {
let mut reader = Reader::new(&mut reader);
let _v = DekuEnum::from_reader_with_ctx(&mut reader, ()).unwrap();
}

fn deku_write_enum(input: &DekuEnum) {
let _v = input.to_bytes().unwrap();
}

fn deku_read_vec(mut reader: impl Read) {
let mut reader = Reader::new(&mut reader);
let _v = DekuVec::from_reader_with_ctx(&mut reader, ()).unwrap();
}

fn deku_write_vec(input: &DekuVec) {
let _v = input.to_bytes().unwrap();
let _v = T::from_reader_with_ctx(&mut reader, ()).unwrap();
}

fn criterion_benchmark(c: &mut Criterion) {
c.bench_function("deku_read_byte", |b| {
let reader = Cursor::new(&[0x01; 1 + 2 + 4]);
b.iter_batched(
|| reader.clone(),
|mut reader| deku_read_byte(&mut reader),
|mut reader| deku_read::<DekuBytes>(&mut reader),
BatchSize::SmallInput,
)
});
c.bench_function("deku_write_byte", |b| {
b.iter(|| {
deku_write_byte(black_box(&DekuBytes {
deku_write(black_box(&DekuBytes {
data_00: 0x00,
data_01: 0x02,
data_02: 0x03,
Expand All @@ -92,13 +65,13 @@ fn criterion_benchmark(c: &mut Criterion) {
let reader = Cursor::new(&[0x01; 1]);
b.iter_batched(
|| reader.clone(),
|mut reader| deku_read_bits(&mut reader),
|mut reader| deku_read::<DekuBits>(&mut reader),
BatchSize::SmallInput,
)
});
c.bench_function("deku_write_bits", |b| {
b.iter(|| {
deku_write_bits(black_box(&DekuBits {
deku_write(black_box(&DekuBits {
data_01: 0x0f,
data_02: 0x00,
data_03: 0x01,
Expand All @@ -110,12 +83,12 @@ fn criterion_benchmark(c: &mut Criterion) {
let reader = Cursor::new(&[0x01; 2]);
b.iter_batched(
|| reader.clone(),
|mut reader| deku_read_enum(&mut reader),
|mut reader| deku_read::<DekuEnum>(&mut reader),
BatchSize::SmallInput,
)
});
c.bench_function("deku_write_enum", |b| {
b.iter(|| deku_write_enum(black_box(&DekuEnum::VariantA(0x02))))
b.iter(|| deku_write(black_box(&DekuEnum::VariantA(0x02))))
});

let deku_write_vec_input = DekuVec {
Expand All @@ -126,12 +99,12 @@ fn criterion_benchmark(c: &mut Criterion) {
let reader = Cursor::new(&[0x08; 8 + 1]);
b.iter_batched(
|| reader.clone(),
|mut reader| deku_read_vec(&mut reader),
|mut reader| deku_read::<DekuVec>(&mut reader),
BatchSize::SmallInput,
)
});
c.bench_function("deku_write_vec", |b| {
b.iter(|| deku_write_vec(black_box(&deku_write_vec_input)))
b.iter(|| deku_write(black_box(&deku_write_vec_input)))
});
}

Expand Down

0 comments on commit c7b4d02

Please sign in to comment.