Skip to content

Conversation

@Centril
Copy link
Contributor

@Centril Centril commented Jan 23, 2026

Description of Changes

With this PR, all VmMetrics for all the reducers and views of a module are made in InstanceCommon::new
so that they are never made in call_{reducer/view}_with_tx.

Here's a flamegraph before this PR, zooming in on the smaller call_reducer_with_tx

image

And after, for the same call_reducer_with_tx:

image

Here are the performance numbers:

wasm, index=hash, branch=master, commit = af4d3f39e485435426b7f9182885175e57aafe44
ran for 10.097515999 seconds
completed 1310720
throughput was 129806.18204812016 TPS

wasm, index=hash, branch=master, commit = bac3d2a5a928af896d315fcfdf709d42e3577b66
ran for 10.842949063 seconds
completed 1474560
throughput was 135992.52301495385 TPS

As you can see, this is a gain of about 6k TPS on the phoenix_nap machine.

The second commit also adds the d3-flamegraph-base.html and stuff to .gitignore to facilitate taking flamegraphs.

API and ABI breaking changes

None

Expected complexity level and risk

1, trivial changes that are not load bearing.

@Centril Centril enabled auto-merge January 23, 2026 11:28
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.

3 participants