How to use Bazel Json profile to get aggregated data?

206 views
Skip to first unread message

Konstantin

unread,
Jul 28, 2021, 2:35:11 PM7/28/21
to bazel-discuss

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  
Reply all
Reply to author
Forward
0 new messages