Optimizing performance article explains how to produce a build profile in Json form. It is typically generated automatically as command.profile.gz after each build. Then it can be processed by `bazel analyze-profile` command or loaded into chrome://tracing/
analyze-profile provides some aggregated data, but only on the very high level and only minimal.
chrome://tracing/ allows to zoom and pan into the timeline to see the details, but I could not figure out the way to get any aggregated data out of it. For example: how many actions of the particular type were executed? What was the average run time? How many were resolved from cache? How long did it take? Etc.
I understand that json profile is not very complex and I can write my own code to perform those aggregations, but first I want to look for the available tools and techniques to gather the data I need.
To my surprize Qt Creator IDE (which comes with Qt library) has built-in analyzer for the Chrome traces. Unfortunately it crashes when I try to feed it any Bazel profiles.
Another recent discovery is
https://www.speedscope.app (works better in Edge than in Chrome), but still it is more about individual events than aggregation.
Any advice?
Thank you!
Konstantin