@Wesley Wiser is there any where (either code or docs) to describe the format of the events? I'm curious whether I could "port" my perf-focus tool to this setup
Are you looking for the raw on-disk format or the internal api used by the tools?
What I'd recommend is is using using
measureme as a dependency which is how the tools we have currently work
The main thing you want is
There's a very basic example of using it here: https://github.com/rust-lang/measureme/blob/master/mmview/src/main.rs
What kind of input does your perf-focus tool need?
well the existing tool expects a stream of samples
but I would probably just rewrite it
There's also this tool https://github.com/rust-lang/measureme/tree/master/stack_collapse
i'll take a look at measureme
Which outputs a file of "stack" samples
That might be a good starting point for your tool
Or perhaps you could reuse the output as is
still, I wouldn't mind rewriting it
You're probably going to end up writing something similar to this function https://github.com/rust-lang/measureme/blob/e0d7945a5280b363a09a068c26c6c5bf21247ad2/stack_collapse/src/stack_collapse.rs#L6
So it's a starting point
this is really cool y'all :)
Let us know if you need anything
One more question @Wesley Wiser -- is it easy to integrate this into the perf.rust-lang.org benchmarks? i.e., those have some kind of options for different profiling modes, have we added self-profiler yet?
That's the next thing we're working on
We have a meeting tomorrow morning to talk about that and our next steps
Ah, ok, great.
The main question is can we always turn this on for perf.rlo or do we need a special mode
see my other topic :)
so in theory I can drag-n-drop these files onto the google chrome profiler or something?
This website also claims to support the chrome format if you don't want to launch chrome :slight_smile: https://www.speedscope.app/