summaryrefslogtreecommitdiff
path: root/benchmarks/benches/argon2id.rs
diff options
context:
space:
mode:
authorHenry Gressmann <mail@henrygressmann.de>2024-06-30 19:19:45 +0200
committerHenry Gressmann <mail@henrygressmann.de>2024-06-30 19:19:45 +0200
commit9c85fa9c3a2066ce851af53d7019e6a25a45af3b (patch)
tree79e6608e97f08c0ebdb64125b0c658f5cc4bb33f /benchmarks/benches/argon2id.rs
parent7e8770cc4e418ef1a8cdfd9b1f59ee14b07cc6c9 (diff)
chore: restructure runtime and reduce build dependencies
Signed-off-by: Henry Gressmann <mail@henrygressmann.de>
Diffstat (limited to 'benchmarks/benches/argon2id.rs')
-rw-r--r--benchmarks/benches/argon2id.rs58
1 files changed, 0 insertions, 58 deletions
diff --git a/benchmarks/benches/argon2id.rs b/benchmarks/benches/argon2id.rs
deleted file mode 100644
index 92250b8..0000000
--- a/benchmarks/benches/argon2id.rs
+++ /dev/null
@@ -1,58 +0,0 @@
-mod util;
-use criterion::{black_box, criterion_group, criterion_main, Criterion};
-
-fn run_tinywasm(wasm: &[u8], params: (i32, i32, i32), name: &str) {
- let (mut store, instance) = util::tinywasm(wasm);
- let argon2 = instance.exported_func::<(i32, i32, i32), i32>(&store, name).expect("exported_func");
- argon2.call(&mut store, params).expect("call");
-}
-
-fn run_wasmi(wasm: &[u8], params: (i32, i32, i32), name: &str) {
- let (module, mut store, linker) = util::wasmi(wasm);
- let instance = linker.instantiate(&mut store, &module).expect("instantiate").start(&mut store).expect("start");
- let argon2 = instance.get_typed_func::<(i32, i32, i32), i32>(&mut store, name).expect("get_typed_func");
- argon2.call(&mut store, params).expect("call");
-}
-
-fn run_wasmer(wasm: &[u8], params: (i32, i32, i32), name: &str) {
- use wasmer::Value;
- let (mut store, instance) = util::wasmer(wasm);
- let argon2 = instance.exports.get_function(name).expect("get_function");
- argon2.call(&mut store, &[Value::I32(params.0), Value::I32(params.1), Value::I32(params.2)]).expect("call");
-}
-
-fn run_native(params: (i32, i32, i32)) {
- fn run_native(m_cost: i32, t_cost: i32, p_cost: i32) {
- let password = b"password";
- let salt = b"some random salt";
-
- let params = argon2::Params::new(m_cost as u32, t_cost as u32, p_cost as u32, None).unwrap();
- let argon = argon2::Argon2::new(argon2::Algorithm::Argon2id, argon2::Version::V0x13, params);
-
- let mut hash = [0u8; 32];
- argon.hash_password_into(password, salt, &mut hash).unwrap();
- }
- run_native(params.0, params.1, params.2)
-}
-
-static ARGON2ID: &[u8] = include_bytes!("../../examples/rust/out/argon2id.opt.wasm");
-fn criterion_benchmark(c: &mut Criterion) {
- let params = (1000, 2, 1);
-
- let mut group = c.benchmark_group("argon2id");
- group.measurement_time(std::time::Duration::from_secs(7));
- group.sample_size(10);
-
- group.bench_function("native", |b| b.iter(|| run_native(black_box(params))));
- group.bench_function("tinywasm", |b| b.iter(|| run_tinywasm(ARGON2ID, black_box(params), "argon2id")));
- group.bench_function("wasmi", |b| b.iter(|| run_wasmi(ARGON2ID, black_box(params), "argon2id")));
- group.bench_function("wasmer", |b| b.iter(|| run_wasmer(ARGON2ID, black_box(params), "argon2id")));
-}
-
-criterion_group!(
- name = benches;
- config = Criterion::default().significance_level(0.1);
- targets = criterion_benchmark
-);
-
-criterion_main!(benches);