diff options
| author | Henry Gressmann <mail@henrygressmann.de> | 2024-01-29 23:12:20 +0100 |
|---|---|---|
| committer | Henry Gressmann <mail@henrygressmann.de> | 2024-01-29 23:12:20 +0100 |
| commit | 4919d8c2f86f69f669a1afba2a28d5c344fe7197 (patch) | |
| tree | 02f4b0747ee217ddf59fdc459a2083a95961a557 /benches/selfhosted.rs | |
| parent | 963ddd26a89490458e31d9d553dffafe5e350e96 (diff) | |
perf: improve benchmarks
Signed-off-by: Henry Gressmann <mail@henrygressmann.de>
Diffstat (limited to 'benches/selfhosted.rs')
| -rw-r--r-- | benches/selfhosted.rs | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/benches/selfhosted.rs b/benches/selfhosted.rs index b9df1af..4464579 100644 --- a/benches/selfhosted.rs +++ b/benches/selfhosted.rs @@ -1,11 +1,11 @@ mod util; use criterion::{criterion_group, criterion_main, Criterion}; -use tinywasm::types::TinyWasmModule; -use util::tinywasm_module; -fn run_tinywasm(module: TinyWasmModule) { +use crate::util::twasm_to_module; + +fn run_tinywasm(twasm: &[u8]) { use tinywasm::*; - let module = Module::from(module); + let module = twasm_to_module(twasm); let mut store = Store::default(); let mut imports = Imports::default(); imports.define("env", "printi32", Extern::typed_func(|_: FuncContext<'_>, _: i32| Ok(()))).expect("define"); @@ -14,10 +14,10 @@ fn run_tinywasm(module: TinyWasmModule) { hello.call(&mut store, ()).expect("call"); } -fn run_wasmi() { +fn run_wasmi(wasm: &[u8]) { use wasmi::*; let engine = Engine::default(); - let module = wasmi::Module::new(&engine, TINYWASM).expect("wasmi::Module::new"); + let module = wasmi::Module::new(&engine, wasm).expect("wasmi::Module::new"); let mut store = Store::new(&engine, ()); let mut linker = <Linker<()>>::new(&engine); linker.define("env", "printi32", Func::wrap(&mut store, |_: Caller<'_, ()>, _: i32| {})).expect("define"); @@ -28,11 +28,11 @@ fn run_wasmi() { const TINYWASM: &[u8] = include_bytes!("../examples/rust/out/tinywasm.wasm"); fn criterion_benchmark(c: &mut Criterion) { - let module = tinywasm_module(TINYWASM); + let twasm = util::wasm_to_twasm(TINYWASM); let mut group = c.benchmark_group("selfhosted"); - group.bench_function("tinywasm", |b| b.iter(|| run_tinywasm(module.clone()))); - group.bench_function("wasmi", |b| b.iter(run_wasmi)); + group.bench_function("tinywasm", |b| b.iter(|| run_tinywasm(&twasm))); + group.bench_function("wasmi", |b| b.iter(|| run_wasmi(TINYWASM))); } criterion_group!( |
