pub enum BenchTarget {
Vm,
Rust,
WasmGc,
WasmGcV8,
}Expand description
Bench targets — picks which backend runs the scenario.
Variants§
Vm
In-process VM via vm::compile_program_with_modules.
Rust
Native Rust binary produced by aver compile --target rust +
cargo build --release. Subprocess spawn per iteration.
WasmGc
In-process wasm-gc backend via wasmtime with the GC + tail-call
proposals enabled. Compiles once with aver compile --target wasm-gc, instantiates + invokes per iteration. wasmtime’s GC
heap is the ceiling for alloc-heavy scenarios — the V8 column
(below) is the production-relevant number for any wasm-gc
deploy that lands in a browser, Cloudflare Workers, Node, Bun,
or Deno. Keep both around so the gap is visible.
WasmGcV8
Same wasm-gc bytes (aver compile --target wasm-gc), executed
under V8 via Node 22+ and tools/wasm-gc-bench-v8.mjs. Spawns
one Node process per scenario, parses raw sample timings off
stdout, then stitches the full BenchReport Rust-side. Memory
project_v8_vs_wasmtime_gc.md documents the engine gap that
motivates the dual column (string_interp is 2300× faster on V8
than on wasmtime as of 0.17.2). Requires node v22+ on PATH
or under ~/.nvm/versions/node/v22.* — earlier Nodes ship a
V8 that rejects packed i8 arrays.
Implementations§
Trait Implementations§
Source§impl Clone for BenchTarget
impl Clone for BenchTarget
Source§fn clone(&self) -> BenchTarget
fn clone(&self) -> BenchTarget
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for BenchTarget
impl Debug for BenchTarget
Source§impl PartialEq for BenchTarget
impl PartialEq for BenchTarget
Source§fn eq(&self, other: &BenchTarget) -> bool
fn eq(&self, other: &BenchTarget) -> bool
self and other values to be equal, and is used by ==.impl Copy for BenchTarget
impl Eq for BenchTarget
impl StructuralPartialEq for BenchTarget
Auto Trait Implementations§
impl Freeze for BenchTarget
impl RefUnwindSafe for BenchTarget
impl Send for BenchTarget
impl Sync for BenchTarget
impl Unpin for BenchTarget
impl UnsafeUnpin for BenchTarget
impl UnwindSafe for BenchTarget
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.