Implement simple benchmarks for instantiation.

This adds benchmarks around module instantiation using criterion.

Both the default (i.e. on-demand) and pooling allocators are tested
sequentially and in parallel using a thread pool.

Instantiation is tested with an empty module, a module with a single page
linear memory, a larger linear memory with a data initializer, and a "hello
world" Rust WASI program.
This commit is contained in:
Peter Huene
2021-05-11 01:00:34 -07:00
parent fa1faf5d22
commit 1b8efa7bbd
10 changed files with 197 additions and 5 deletions

View File

@@ -41,7 +41,7 @@ file-per-thread-logger = "0.1.1"
wat = "1.0.37"
libc = "0.2.60"
log = "0.4.8"
rayon = "1.2.1"
rayon = "1.5.0"
humantime = "2.0.0"
wasmparser = "0.77.0"
lazy_static = "1.4.0"
@@ -57,6 +57,8 @@ wasmtime-runtime = { path = "crates/runtime" }
tokio = { version = "1.5.0", features = ["rt", "time", "macros", "rt-multi-thread"] }
tracing-subscriber = "0.2.16"
wast = "35.0.0"
criterion = "0.3.4"
num_cpus = "1.13.0"
[build-dependencies]
anyhow = "1.0.19"
@@ -116,3 +118,7 @@ required-features = ["wasmtime-wasi/tokio"]
[profile.dev.package.backtrace]
debug = false # FIXME(#1813)
[[bench]]
name = "instantiation"
harness = false