Benchmark Suite Expansion
Currently Walrus uses its own C micro-benchmarks (test/wasmBenchmarker/ctests) plus CoreMark, Dhrystone, and smallpt (test/programs).
To better measure interpreter/JIT performance and compare Walrus against other lightweight runtimes (wasm3, WAMR, etc.), the following widely-used WebAssembly benchmarks should be integrated.
Tasks are listed in order of increasing difficulty.
1. Remaining CLBG (Computer Language Benchmarks Game) tests
2. PolyBench/C
- ~30 linear algebra / stencil kernels, a de facto standard in Wasm performance research
- Pure computation kernels with almost no WASI dependency; can run on Walrus as-is
- Useful for measuring JIT loop optimization effects
- https://sourceforge.net/projects/polybench
3. CoreMark-PRO
- Natural extension of the existing CoreMark integration
- Adds diverse workloads: JPEG compression, SHA-256, ZIP, neural net, FFT, etc.
- Well suited for embedded-target comparisons
- https://github.com/eembc/coremark-pro
4. Embenchen (Emscripten benchmark suite)
5. Sightglass harness integration
- Standard benchmark suite of the Bytecode Alliance (Wasmtime/Cranelift)
- Includes large real-world modules (e.g.
spidermonkey.wasm) — also useful for measuring parse/compile time, a key metric for a lightweight runtime
- Requires registering Walrus as an engine in the Sightglass runner; the integration itself is a standalone task
- https://github.com/bytecodealliance/sightglass
(Optional) Additional candidates
- libsodium benchmark — commonly used by lightweight interpreters (wasm3) for comparison
- JetStream 3 Wasm subtests (argon2, zlib-wasm, gcc-loops, richards-wasm) — extract standalone Wasm modules from the browser suite
Common follow-up work
- Integrate the new benchmarks into
test/wasmBenchmarker/benchmark.py (or a unified runner) for performance measurement
- Optionally register them as correctness tests in
tools/run-tests.py (verify expected outputs on both interpreter and JIT)
Benchmark Suite Expansion
Currently Walrus uses its own C micro-benchmarks (
test/wasmBenchmarker/ctests) plus CoreMark, Dhrystone, and smallpt (test/programs).To better measure interpreter/JIT performance and compare Walrus against other lightweight runtimes (wasm3, WAMR, etc.), the following widely-used WebAssembly benchmarks should be integrated.
Tasks are listed in order of increasing difficulty.
1. Remaining CLBG (Computer Language Benchmarks Game) tests
ctestsalready includes nbody, fannkuch, kNucleotide, and mandelbrotbinary-trees(allocation-heavy),spectral-norm,fasta,pidigits(bignum),reverse-complementctests; lowest entry barrier2. PolyBench/C
3. CoreMark-PRO
4. Embenchen (Emscripten benchmark suite)
5. Sightglass harness integration
spidermonkey.wasm) — also useful for measuring parse/compile time, a key metric for a lightweight runtime(Optional) Additional candidates
Common follow-up work
test/wasmBenchmarker/benchmark.py(or a unified runner) for performance measurementtools/run-tests.py(verify expected outputs on both interpreter and JIT)