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};
|
use criterion::{Criterion, black_box, criterion_group, criterion_main};
|
||||||
|
|
||||||
pub fn criterion_benchmark(c: &mut Criterion) {
|
pub fn criterion_benchmark(c: &mut Criterion) {
|
||||||
c.bench_function("crc32", |b| {
|
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| {
|
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;
|
use iai::black_box;
|
||||||
|
|
||||||
fn iai_benchmark_native() -> <Crc32 as Crc>::Checksum {
|
fn crc_benchmark_native() -> <crc::Crc32 as Crc>::Checksum {
|
||||||
Crc32::checksum(black_box(&CHECK_DATA))
|
crc::Crc32::checksum(black_box(&crc::CHECK_DATA))
|
||||||
}
|
}
|
||||||
fn iai_benchmark_ffi() -> <Crc32 as Crc>::Checksum {
|
fn crc_benchmark_ffi() -> <crc::ffi::Crc32 as Crc>::Checksum {
|
||||||
ffi::Crc32::checksum(black_box(&CHECK_DATA))
|
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;
|
mod sha2;
|
||||||
pub use sha2::*;
|
pub use sha2::*;
|
||||||
|
|
||||||
|
pub const HASH_EXAMPLE_DATA: &[u8] = b"lalilolela";
|
||||||
|
|
Loading…
Add table
Reference in a new issue