Realized (yet again) that while events in an emitter may form a DAG, during execution they very much form a tree. This is the same as with regular functions. Any given function may be called by many other functions. But it never has multiple callers simultaneously — so a tree!
-
Show this thread
-
This is so obvious now that I'm kind of facepalming. This is how we've tracked events in Choo for years now. So what I'm thinking now is: how can we apply this to the compiler's query engine?
1 reply 0 retweets 0 likesShow this thread -
[note: I know little about the compiler — apply plenty of salt please] I'm thinking it'd be *really* interesting to plot out the compiler queries as a flamegraph. Just the events, not the code. Then color code by event kind to visualize the different kinds of tasks.
1 reply 0 retweets 0 likesShow this thread -
Could do differential flame graphs for different versions of the compiler too. See how new runs of the query engine compare to older runs. Also interesting to explore: adding in information about caching, system calls (fs, mostly), plotting flame scopes (to visualize spikes).
1 reply 0 retweets 0 likesShow this thread -
@nnethercote's question of "can we add more tools to look at compiler perf" got me thinking about this. I think this could be an interesting approach to start looking at the compiler from a system level to see if patterns emerge that we can drill down on later.1 reply 0 retweets 1 likeShow this thread -
(I know there is a tracing command available already, but that's only a timeline right now — it's much easier to spot patterns by looking at (sorted) aggregates such as (differential) flamegraphs / flamescopes)
1 reply 0 retweets 1 likeShow this thread -
Replying to @yoshuawuyts
You might want to share your thoughts herehttps://internals.rust-lang.org/t/compiler-profiling-survey/10969/21 …
1 reply 0 retweets 1 like
Replied. Thanks for the link!
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.