feat(alg): host benches for hash
This commit is contained in:
parent
e78dc4a628
commit
1e827d6b8a
3 changed files with 32 additions and 9 deletions
|
@ -1,12 +1,20 @@
|
|||
use algorithms::crc::{CHECK_DATA, Crc, Crc32, ffi};
|
||||
use algorithms::crc::{self, Crc};
|
||||
use algorithms::hash;
|
||||
use criterion::{Criterion, black_box, criterion_group, criterion_main};
|
||||
|
||||
pub fn criterion_benchmark(c: &mut Criterion) {
|
||||
c.bench_function("crc32", |b| {
|
||||
b.iter(|| Crc32::checksum(black_box(&CHECK_DATA)))
|
||||
b.iter(|| crc::Crc32::checksum(black_box(&crc::CHECK_DATA)))
|
||||
});
|
||||
c.bench_function("ffi::crc32", |b| {
|
||||
b.iter(|| ffi::Crc32::checksum(black_box(&CHECK_DATA)))
|
||||
b.iter(|| crc::ffi::Crc32::checksum(black_box(&crc::CHECK_DATA)))
|
||||
});
|
||||
|
||||
c.bench_function("sha2_256", |b| {
|
||||
b.iter(|| hash::sha2_256_oneshot(black_box(hash::HASH_EXAMPLE_DATA)))
|
||||
});
|
||||
c.bench_function("ffi::sha2_256", |b| {
|
||||
b.iter(|| hash::ffi::sha2_256_oneshot(black_box(hash::HASH_EXAMPLE_DATA)))
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -1,11 +1,24 @@
|
|||
use algorithms::crc::{CHECK_DATA, Crc, Crc32, ffi};
|
||||
use algorithms::crc::{self, Crc};
|
||||
use algorithms::hash;
|
||||
use iai::black_box;
|
||||
|
||||
fn iai_benchmark_native() -> <Crc32 as Crc>::Checksum {
|
||||
Crc32::checksum(black_box(&CHECK_DATA))
|
||||
fn crc_benchmark_native() -> <crc::Crc32 as Crc>::Checksum {
|
||||
crc::Crc32::checksum(black_box(&crc::CHECK_DATA))
|
||||
}
|
||||
fn iai_benchmark_ffi() -> <Crc32 as Crc>::Checksum {
|
||||
ffi::Crc32::checksum(black_box(&CHECK_DATA))
|
||||
fn crc_benchmark_ffi() -> <crc::ffi::Crc32 as Crc>::Checksum {
|
||||
crc::ffi::Crc32::checksum(black_box(&crc::CHECK_DATA))
|
||||
}
|
||||
|
||||
iai::main!(iai_benchmark_native, iai_benchmark_ffi);
|
||||
fn hash_benchmark_native() -> hash::Digest256 {
|
||||
hash::sha2_256_oneshot(hash::HASH_EXAMPLE_DATA).unwrap()
|
||||
}
|
||||
fn hash_benchmark_ffi() -> hash::Digest256 {
|
||||
hash::ffi::sha2_256_oneshot(hash::HASH_EXAMPLE_DATA).unwrap()
|
||||
}
|
||||
|
||||
iai::main!(
|
||||
crc_benchmark_native,
|
||||
crc_benchmark_ffi,
|
||||
hash_benchmark_native,
|
||||
hash_benchmark_ffi
|
||||
);
|
||||
|
|
|
@ -2,3 +2,5 @@ pub mod ffi;
|
|||
|
||||
mod sha2;
|
||||
pub use sha2::*;
|
||||
|
||||
pub const HASH_EXAMPLE_DATA: &[u8] = b"lalilolela";
|
||||
|
|
Loading…
Add table
Reference in a new issue