1
0
Fork 0
mirror of https://codeberg.org/icewind/bitbuffer.git synced 2026-06-04 00:54:07 +02:00

move benchmarks to iai-callgrind

This commit is contained in:
Robin Appelman 2025-07-13 18:35:17 +02:00
commit bf4d038c8d
11 changed files with 311 additions and 299 deletions

View file

@ -1,15 +1,35 @@
use bitbuffer::{BitWriteStream, LittleEndian};
use iai::black_box;
use bitbuffer::{BigEndian, BitWriteStream, Endianness, LittleEndian};
use iai_callgrind::{library_benchmark, library_benchmark_group, main};
use std::hint::black_box;
fn write_int_le() {
let mut out = Vec::with_capacity(128);
fn create_output<E: Endianness>(bit_size: usize, endianness: E) -> (E, Vec<u8>, usize) {
(
endianness,
Vec::with_capacity(bit_size.next_power_of_two() / 8 * 128),
bit_size,
)
}
#[library_benchmark(setup = create_output)]
#[bench::le_small(7, LittleEndian)]
#[bench::be_small(7, BigEndian)]
#[bench::le_medium(15, LittleEndian)]
#[bench::be_medoim(15, BigEndian)]
#[bench::le_large(57, LittleEndian)]
#[bench::be_large(57, BigEndian)]
fn write_int_le<E: Endianness>((endianness, mut out, bit_size): (E, Vec<u8>, usize)) {
{
let mut write = BitWriteStream::new(&mut out, LittleEndian);
let mut write = BitWriteStream::new(&mut out, endianness);
for i in 0..128 {
write.write_sized(&black_box(i), 7).unwrap();
write.write_sized(&black_box(i as u64), bit_size).unwrap();
}
}
black_box(out);
}
iai::main!(write_int_le);
library_benchmark_group!(
name = bench_write_group;
benchmarks = write_int_le
);
main!(library_benchmark_groups = bench_write_group);