Initial vendor packages
Signed-off-by: Valentin Popov <valentin@popov.link>
This commit is contained in:
53
vendor/crc32fast/benches/bench.rs
vendored
Normal file
53
vendor/crc32fast/benches/bench.rs
vendored
Normal file
@ -0,0 +1,53 @@
|
||||
#[macro_use]
|
||||
extern crate bencher;
|
||||
extern crate crc32fast;
|
||||
extern crate rand;
|
||||
|
||||
use bencher::Bencher;
|
||||
use crc32fast::Hasher;
|
||||
use rand::Rng;
|
||||
|
||||
fn bench(b: &mut Bencher, size: usize, hasher_init: Hasher) {
|
||||
let mut bytes = vec![0u8; size];
|
||||
rand::thread_rng().fill(&mut bytes[..]);
|
||||
|
||||
b.iter(|| {
|
||||
let mut hasher = hasher_init.clone();
|
||||
hasher.update(&bytes);
|
||||
bencher::black_box(hasher.finalize())
|
||||
});
|
||||
|
||||
b.bytes = size as u64;
|
||||
}
|
||||
|
||||
fn bench_kilobyte_baseline(b: &mut Bencher) {
|
||||
bench(b, 1024, Hasher::internal_new_baseline(0, 0))
|
||||
}
|
||||
|
||||
fn bench_kilobyte_specialized(b: &mut Bencher) {
|
||||
bench(b, 1024, Hasher::internal_new_specialized(0, 0).unwrap())
|
||||
}
|
||||
|
||||
fn bench_megabyte_baseline(b: &mut Bencher) {
|
||||
bench(b, 1024 * 1024, Hasher::internal_new_baseline(0, 0))
|
||||
}
|
||||
|
||||
fn bench_megabyte_specialized(b: &mut Bencher) {
|
||||
bench(
|
||||
b,
|
||||
1024 * 1024,
|
||||
Hasher::internal_new_specialized(0, 0).unwrap(),
|
||||
)
|
||||
}
|
||||
|
||||
benchmark_group!(
|
||||
bench_baseline,
|
||||
bench_kilobyte_baseline,
|
||||
bench_megabyte_baseline
|
||||
);
|
||||
benchmark_group!(
|
||||
bench_specialized,
|
||||
bench_kilobyte_specialized,
|
||||
bench_megabyte_specialized
|
||||
);
|
||||
benchmark_main!(bench_baseline, bench_specialized);
|
Reference in New Issue
Block a user