Skip to content

Always record only one iteration per process - #343

Merged
cfallin merged 6 commits into
bytecodealliance:mainfrom
fitzgen:one-iter-per-process
Oct 13, 2026
Merged

cfallin merged 6 commits into
bytecodealliance:mainfrom
fitzgen:one-iter-per-process

Conversation

@fitzgen

@fitzgen fitzgen commented Oct 13, 2026

Copy link
Copy Markdown
Member

I've found that samples were not independent with regard to their process in practice, which undermines our statistical analyses, and the overhead of process spawning is basically nothing compared to the cost of running an iteration, so this commit series makes us run each iteration in its own process.

The --processes and --iterations-per-process CLI flags are replaced with a single -i/--iters flag.

This also folds in The Last ABI Breakage We Will Ever Have (and therefore depends on bytecodealliance/wasmtime#14705 landing so we can point our CI builds of the bench API at an engine that uses the new ABI) so that we can cache compilation across processes when benchmarking just instantiation or execution.

Also removes the native benchmarking support, as it was already had a subtly mismatched ABI, and no one is actively using or maintaining it. If someone steps up in the future, we can always revive it pretty easily.

See each commit for details.

r? @cfallin

It already had outdated ABI mismatches, where it was missing `WasmBenchConfig`
fields. Since no one is using or maintaining this, I'm taking the opportunity to
remove it as we change the ABI in other ways that would otherwise expose native
support's breakage in louder ways.

We can always revive this if someone is sufficiently motivated in the future.
The leading size field lets the engine tell which trailing fields we
actually allocated, so later fields can be added without breaking
already-built engine libraries.
@fitzgen
fitzgen requested a review from cfallin October 13, 2026 17:21
@fitzgen

fitzgen commented Oct 13, 2026

Copy link
Copy Markdown
Member Author

Okay bytecodealliance/wasmtime#14705 merged and I updated the wasmtime version we use in CI, so this should be good to go.

@cfallin cfallin left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good cleanups, thanks!

@cfallin
cfallin merged commit 181477a into bytecodealliance:main Oct 13, 2026
11 checks passed
@fitzgen
fitzgen deleted the one-iter-per-process branch October 13, 2026 22:14
fitzgen added a commit to bytecodealliance/are-we-fast-yet that referenced this pull request Oct 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants