Leaps and bounds: Analysing WebAssembly's performance with a focus on bounds checking
Authors/Creators
- 1. University of Edinburgh, United Kingdom
- 2. University of St Andrews, United Kingdom
Description
Leaps and bounds: Analysing WebAssembly’s performance with a focus on bounds checking - Source code and experimental data bundle
This is the code&data bundle accompanying the IISWC2022 paper "Leaps and bounds: Analysing WebAssembly’s performance with a focus on bounds checking" by Raven Szewczyk, Kim Stonehouse, Antonio Barbalace and Tom Spink.
The bundle is archived in the wasmbounds-oss-v1.0.0.tar.gz file, and the other tar.gz files are pre-built Docker-compatible OCI container images that can be used to reproduce benchmark results on new machines.
Contents of the main bundle:
graphs/plots: Plots used in the papergraphs/wasmbounds.Rmd,graphs/knitall.R: R source code used to generate the plotsruns/kone.csv,runs/sole.csv,runs/riscv.csv: Raw experimental data used to generate the plots in the CSV (comma-separated value) format (kone = x86_64 machine, sole = armv8 machine, riscv = Nezha D1 RISC-V development board)- These are gzipped in the GitHub version of this archive due to file size limitations, make sure to unzip them before using any of the scripts
patches-{polybenchc,speccpu2017}.patch: Our patches to the Polybench/C and SPECcpu2017 benchmark suites to make them compatible with WebAssemblypatches-{nodev8,wasm3,wasmtime,wavm}.patch: Our patches to the WebAssembly runtimes evaluated in the paper adding support for alternative bounds checking methods and integrating them with our benchmarking harnessrunner-src/*,CMakeLists.txt,CMakePresets.json: C++ Source code for the benchmarking harness, including the UserfaultFD memory arena managerstatmon/*: Rust source code for the system resource usage and CPU performance counter monitoring tool used to generate the data for the paperscripts/*,*.sh: Utility scripts for compiling the benchmark suites, harness and running benchmarksDockerfile.*,Bakefile-*.hcl: Docker container definitions for reproducible benchmark running conditionscpp-libs/fmt,node-v18.2.0,polybench-c-4.2,wasm3-0.5.0,wasmtime,WAVM- already patched open source third party libraries and WebAssembly runtimes used in the paper- Not included:
spec-cpu- an installation of the SPECcpu2017 benchmark suite, not included due to licensing restrictions but patches are provided for users who hold a license
More information in the README.MD file in the bundle.
Files
Files
(4.8 GB)
| Name | Size | Download all |
|---|---|---|
|
md5:fe79559f663489958a0a9f6ff75a45aa
|
307.0 MB | Download |
|
md5:7947e40d2f8ce9079fb4b1e8d631c16a
|
295.1 MB | Download |
|
md5:6b481b68ca7ec97517db29b63912732e
|
277.3 MB | Download |
|
md5:4ee393c5752fea430e331151f75d49ed
|
316.2 MB | Download |
|
md5:c27bc157ff68e7c420d214bdc56df9e2
|
244.7 MB | Download |
|
md5:222b244e47c2763efccd4267b3b69381
|
230.8 MB | Download |
|
md5:7221865d548b55967af65224600efbae
|
263.9 MB | Download |
|
md5:a154c9c29fb17ccfa4912821febcd1d4
|
881.9 MB | Download |
|
md5:8740c94044b4ca4ff47b769a3fb383f9
|
1.0 GB | Download |
|
md5:992bc15b23d3afd746d1bf93fcb87dd1
|
944.1 MB | Download |
Additional details
Related works
- Is identical to
- Software: https://github.com/wasmbounds/wasmbounds/releases/tag/v1.0.0 (URL)
- Is supplement to
- Conference paper: 10.1109/IISWC55918.2022.00030 (DOI)
- Conference paper: https://ieeexplore.ieee.org/document/9975418 (URL)