1
0
Fork 0
mirror of https://codeberg.org/icewind/bitbuffer.git synced 2026-06-03 16:44:06 +02:00

bench le strings

This commit is contained in:
Robin Appelman 2019-03-16 14:20:41 +01:00
commit 459d01405f

View file

@ -113,7 +113,7 @@ fn verify_buffer(buffer: &BitBuffer<BigEndian>, inputs: &Vec<&str>) {
} }
#[bench] #[bench]
fn perf_string(b: &mut Bencher) { fn perf_string_be(b: &mut Bencher) {
let inputs = vec!["foo", "bar", "something a little bit longer for extra testing", "a", ""]; let inputs = vec!["foo", "bar", "something a little bit longer for extra testing", "a", ""];
let data = build_string_data(10 * 1024 * 1024, &inputs); let data = build_string_data(10 * 1024 * 1024, &inputs);
let buffer = BitBuffer::new(data, BigEndian); let buffer = BitBuffer::new(data, BigEndian);
@ -134,3 +134,26 @@ fn perf_string(b: &mut Bencher) {
} }
}); });
} }
#[bench]
fn perf_string_le(b: &mut Bencher) {
let inputs = vec!["foo", "bar", "something a little bit longer for extra testing", "a", ""];
let data = build_string_data(10 * 1024 * 1024, &inputs);
let buffer = BitBuffer::new(data, LittleEndian);
// test it once before bench
//verify_buffer(&buffer, &inputs);
b.iter(|| {
let mut pos = 0;
let len = buffer.bit_len();
loop {
if pos + (128 * 8) > len {
break;
}
let result = buffer.read_string(pos, None).unwrap();
pos += (result.len() + 1) * 8;
test::black_box(result);
}
});
}