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:
parent
7596677370
commit
bf4d038c8d
11 changed files with 311 additions and 299 deletions
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue