jameysharp opened issue #7667:
Feature
We record the wall-clock time when each call-stack sample was taken in the guest profiler, but the Firefox profiler format also allows us to record how much CPU time was used since the last sample.
Benefit
This should change the profile viewer’s output format to offer total time in various places, not just number of samples. That's generally easier for people to understand.
Implementation
On POSIX platforms, the clock to use is
rustix::time::clock_gettime(ClockId::ThreadCPUTime)
. I don't know how to do this on Windows.In
GuestProfiler::sample
, the call toself.profile.add_sample
currently passesCpuDelta::ZERO
and should instead pass the difference between two queries of the above clock.I'm not sure if this would work correctly for an embedder who time-slices between different guests on the same OS thread. I don't know if we can detect when the current guest is swapped out or back in without some kind of magic attached to the current wasmtime-fibers code for swapping thread-local storage.
Alternatives
The profiler is usable without this CPU time metric.
jameysharp added the enhancement label to Issue #7667.
jameysharp added the wasmtime label to Issue #7667.
Last updated: Dec 23 2024 at 12:05 UTC