libextra: Add benchmarks for ebml::reader::vuint_at()
This commit is contained in:
parent
0df9b850ac
commit
3250e65500
1 changed files with 84 additions and 0 deletions
|
|
@ -960,3 +960,87 @@ mod tests {
|
|||
test_v(Some(3));
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod bench {
|
||||
use ebml::reader;
|
||||
use test::BenchHarness;
|
||||
|
||||
#[bench]
|
||||
pub fn vuint_at_A_aligned(bh: &mut BenchHarness) {
|
||||
use std::vec;
|
||||
let data = vec::from_fn(4*100, |i| {
|
||||
match (i % 2) {
|
||||
0 => 0x80u8,
|
||||
_ => i as u8,
|
||||
}
|
||||
});
|
||||
let mut sum = 0u;
|
||||
bh.iter(|| {
|
||||
let mut i = 0;
|
||||
while (i < data.len()) {
|
||||
sum += reader::vuint_at(data, i).val;
|
||||
i += 4;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
#[bench]
|
||||
pub fn vuint_at_A_unaligned(bh: &mut BenchHarness) {
|
||||
use std::vec;
|
||||
let data = vec::from_fn(4*100+1, |i| {
|
||||
match (i % 2) {
|
||||
1 => 0x80u8,
|
||||
_ => i as u8
|
||||
}
|
||||
});
|
||||
let mut sum = 0u;
|
||||
bh.iter(|| {
|
||||
let mut i = 1;
|
||||
while (i < data.len()) {
|
||||
sum += reader::vuint_at(data, i).val;
|
||||
i += 4;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
#[bench]
|
||||
pub fn vuint_at_D_aligned(bh: &mut BenchHarness) {
|
||||
use std::vec;
|
||||
let data = vec::from_fn(4*100, |i| {
|
||||
match (i % 4) {
|
||||
0 => 0x10u8,
|
||||
3 => i as u8,
|
||||
_ => 0u8
|
||||
}
|
||||
});
|
||||
let mut sum = 0u;
|
||||
bh.iter(|| {
|
||||
let mut i = 0;
|
||||
while (i < data.len()) {
|
||||
sum += reader::vuint_at(data, i).val;
|
||||
i += 4;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
#[bench]
|
||||
pub fn vuint_at_D_unaligned(bh: &mut BenchHarness) {
|
||||
use std::vec;
|
||||
let data = vec::from_fn(4*100+1, |i| {
|
||||
match (i % 4) {
|
||||
1 => 0x10u8,
|
||||
0 => i as u8,
|
||||
_ => 0u8
|
||||
}
|
||||
});
|
||||
let mut sum = 0u;
|
||||
bh.iter(|| {
|
||||
let mut i = 1;
|
||||
while (i < data.len()) {
|
||||
sum += reader::vuint_at(data, i).val;
|
||||
i += 4;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue