First time to use the profiler.firefox.com webapp, so first time to use it for a file created by wasmtime. Very cool. And no surprise I guess, the web app takes gzipped versions of the json profile as well.
I haven't dug deep into all of what is available, but I think we could probably provide some other interesting output for guest profiles. Some quick ideas I had were the following:
In the future, with core stack switching we can model those stacks as threads. Today, we probably should consider finding a way to support multiple concurrent instances as threads (though without direct interaction most cases are probably fine just emitting separate profiles).
We probably could do more with categories; category or subcategory-per-component would be one way to model this within the guest. We don't trace into the host (and probably would not ever with guest profiling) but applying a different category for the calls into hostcalls as spans could be interesting as an option. These categories are how you would colorize things differently as well.
Right now we just have a single marker type for hostcall. I suspect we could look at the frame data to tag this differently.
Related to hostcalls, there's probably opportunity to use these as instrumentation points for counters to track some different resources; this would probably need to be for a few specific calls and would have some tradeoffs in terms of how possible/messy/expensive/stable it gets to pull out the information.
Memory info could probably be sampled separate from hostcall analysis, possibly using an existing hook like ResourceLimiter
Profiling like this on a wasm component is a brand new ability, per your PR to wasmtime the last few days. I bet there will be all sorts of ways people would want the data collected for their own use cases. Here we have the rust tool chain and the wasm instantiation tool chain all at our fingertips.
As a reminder, the profile is as easy to have collected as passing --profile=guest on the wasmtime command line. Besides the wasmtime cli itself, there is nothing else to install.