-
Notifications
You must be signed in to change notification settings - Fork 4.4k
Open
Labels
P2We'll consider working on this in future. (Assignee optional)We'll consider working on this in future. (Assignee optional)team-CoreSkyframe, bazel query, BEP, options parsing, bazelrcSkyframe, bazel query, BEP, options parsing, bazelrcteam-PerformanceIssues for Performance teamsIssues for Performance teamstype: feature request
Description
Description of the feature request:
(description copied from related issue #24293)
Our repository contains about 700,000 targets. We use the output of bazel query to improve CI performance, by restricting the Bazel build to changed targets and their transitive dependencies (similar to bazel-diff).
Specifically, we run:
bazel query --output=streamed_proto //...
This produces a 6.8 GB file and takes (~cold):
- 16 seconds to download/unpack external repos
- 14 seconds to parse all the BUILD.bazel files
- 4 seconds to evaluate the query expression
- 1 minute, 35 seconds to render the protos to stdout
We'd like to speed up this last step, as it’s 74% of wall time.
Through Java profiling (via YourKit and Java Flight Recorder) we've noticed that Bazel spends a lot of wall time on a single thread doing:
- Constructing protobuf
Build.Targetobjects in memory - Rendering said proto to varint-delimited wire format
- Actually writing to
stdout
Which category does this issue belong to?
Core, Performance
What underlying problem are you trying to solve with this feature?
Improve bazel query --output=streamed_proto performance
Which operating system are you running Bazel on?
Linux Ubuntu 24.04.1
What is the output of bazel info release?
release 7.2.0
If bazel info release returns development version or (@non-git), tell us how you built Bazel.
No response
What's the output of git remote get-url origin; git rev-parse HEAD ?
No response
Have you found anything relevant by searching the web?
No response
Any other information, logs, or outputs that you want to share?
No response
Metadata
Metadata
Assignees
Labels
P2We'll consider working on this in future. (Assignee optional)We'll consider working on this in future. (Assignee optional)team-CoreSkyframe, bazel query, BEP, options parsing, bazelrcSkyframe, bazel query, BEP, options parsing, bazelrcteam-PerformanceIssues for Performance teamsIssues for Performance teamstype: feature request
