In the research on data grids I see some grid libraries that delay rendering and so spend 0ms during the step. I've also experimented with and think we should consider using in-memory SQLite WASM as a backend for these tests, and that runs in a worker so async is a must-have.
In the research on charting libraries that @julienw has been doing - where certain libraries delay rendering (especially React-based wrappers AIUI) in a way that causes significant work to happen outside of the timed window.
@rniwa and I discussed a bit on WebKit Slack, and concluded
yeah, making the sync step compatible with promise seems okay to me. We just need to make sure we don't accidentally start measuring truly async stuff like network loads and such.
There are some workloads that we hard to capture synchronously in a BenchmarkTestStep. Areas this has come up
@rniwa and I discussed a bit on WebKit Slack, and concluded
I don't know mechanically what will be involved with a change here, and the main runner function comments about not using Promise https://github.com/WebKit/Speedometer/blob/24b094d1cc620be0fecb04e31863dba851fa900e/resources/benchmark-runner.mjs#L230. There's also https://github.com/WebKit/Speedometer/pull/28#discussion_r1054531972 which may or may not make sense to tackle at the same time if we're going to be tweaking the core measurement function.