Reuse same runtime between module and db benchmarks.
Use Criterion's to_async for async benchmarks.
Reorder fields of SpacetimeModule to avoid the Option<ModuleHandle> hack - Rust has a guaranteed drop order that we can rely on.
Avoid cloning and batching of argument product values, use references instead.
This both simplifies benchmarking code and reduces the timing overhead a bit.
API and ABI breaking changes
If this is an API or ABI breaking change, please apply the
corresponding GitHub label.
Expected complexity level and risk
How complicated do you think these changes are? Grade on a scale from 1 to 5,
where 1 is a trivial change, and 5 is a deep-reaching and complex change.
This complexity rating applies not only to the complexity apparent in the diff,
but also to its interactions with existing and future code.
If you answered more than a 2, explain what is complex about the PR,
and what other components it interacts with in potentially concerning ways.
Testing
Describe any testing you've done, and any testing you'd like your reviewers to do,
so that you're confident that all the changes work as expected!
[x] Write a test you've completed here.
[ ] Write a test you want a reviewer to do here, so they can check it off when they're satisfied.
Description of Changes
to_async
for async benchmarks.SpacetimeModule
to avoid theOption<ModuleHandle>
hack - Rust has a guaranteed drop order that we can rely on.This both simplifies benchmarking code and reduces the timing overhead a bit.
API and ABI breaking changes
If this is an API or ABI breaking change, please apply the corresponding GitHub label.
Expected complexity level and risk
How complicated do you think these changes are? Grade on a scale from 1 to 5, where 1 is a trivial change, and 5 is a deep-reaching and complex change.
This complexity rating applies not only to the complexity apparent in the diff, but also to its interactions with existing and future code.
If you answered more than a 2, explain what is complex about the PR, and what other components it interacts with in potentially concerning ways.
Testing
Describe any testing you've done, and any testing you'd like your reviewers to do, so that you're confident that all the changes work as expected!