Stream: git-wasmtime

Topic: wasmtime / issue #11209 `call_async` performance regressi...


view this post on Zulip Wasmtime GitHub notifications bot (Jul 09 2025 at 20:45):

dicej added the wasm-proposal:component-model-async label to Issue #11209.

view this post on Zulip Wasmtime GitHub notifications bot (Jul 09 2025 at 20:45):

dicej opened issue #11209:

#11127 changes the implementation of [Typed]Func::call_async when the component-model-async feature is enabled, conservatively setting up the state required to handle the Component Model async ABI in case the guest function uses it. This extra work shows up in microbenchmarks such as async-pool/no-hook/component - host-to-wasm - typed - nop-params-and-results, where we see a 120%-150% regression vs. the original code path.

Alex and I spent some time looking at the profile, and there was no obvious low-hanging fruit. The main hotspots appear to be moving large objects in memory, possibly related to wasmtime::runtime::component::concurrent::GuestTask and Futures containing it.

We should try to improve the existing async-pool/no-hook/component - host-to-wasm - typed - .* benchmarks and also add new ones which actually exercise the async ABI features (e.g. an async-with-callback-lifted export which yields N times before completing).

view this post on Zulip Wasmtime GitHub notifications bot (Jul 10 2025 at 02:30):

alexcrichton added the performance label to Issue #11209.


Last updated: Dec 06 2025 at 07:03 UTC