mirror of
https://codeberg.org/icewind/bitbuffer.git
synced 2026-06-04 00:54:07 +02:00
bench le strings
This commit is contained in:
parent
18cd799a9b
commit
459d01405f
1 changed files with 24 additions and 1 deletions
|
|
@ -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);
|
||||||
|
|
@ -121,6 +121,29 @@ fn perf_string(b: &mut Bencher) {
|
||||||
// test it once before bench
|
// test it once before bench
|
||||||
//verify_buffer(&buffer, &inputs);
|
//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);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
#[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(|| {
|
b.iter(|| {
|
||||||
let mut pos = 0;
|
let mut pos = 0;
|
||||||
let len = buffer.bit_len();
|
let len = buffer.bit_len();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue