Sha256: fb71f17c9f472d0985aead2c71e4ac4f717e5a1eeedc2fbfe75de8709033542d
Contents?: true
Size: 1.19 KB
Versions: 39
Compression:
Stored size: 1.19 KB
Contents
#[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);
Version data entries
39 entries across 39 versions & 1 rubygems