-
Notifications
You must be signed in to change notification settings - Fork 4.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Understanding overhead showing in Chrome trace #10702
Comments
Don't know if this is related, but we are also experiencing similar overhead when calling Traces: The overhead is not too bad considering this is only one target, but you can clearly see multiple |
Looking into this, it seems the post processing is Bazel collecting the contents of the |
@chiragramani do you have an example repository that we can try this with? |
You can then look at the The blank space at the end of all of them scale with the size of the linked binary (so this example will be milliseconds, 73 in my case on each action, but on real projects it grows to multiple seconds, and is unnecessary overhead). |
Thanks @brentleyjones for reproduction code. But The profile is here. |
My concern is more the symlinks actions taking the same amount of extra time. Those shouldn't be sandbox copy and delete times, since it's just a symlinks. So I agree, the more concerning part isn't the sandbox but the |
@tjgq maybe you know more about of symbolic links sandbox manipulations during action execution/action completion. I will try to add more detailed partition on |
Came across this issue - #14125 that also talks about some overhead involved with
|
Sadly, One possible solution is to generalize 32b0f5a to also short-circuit the filesystem traversal for symlinks in the local execution case. I know that this isn't trivial to do because I tried (and failed) to do that in an earlier iteration of that CL. |
I'm going to close this as a duplicate of #14125. |
If you don't already, set |
@larsrc-google Should the default on that be changed? |
There has been a problem with what seems to be bad interactions with async deletes that has made me hold off on flipping it. |
Would those errors look like this 😅?
|
Yes, that looks similar. I've spent some time looking into it but not found a viable hypothesis yet. |
I could very easily reproduce it. Would a repro be of value to you? |
Yes please, I've had trouble getting a stable repro. |
https://github.com/buildbuddy-io/rules_xcodeproj/tree/repro/reuse-sandbox
The last command for me consistently fails. If it doesn't fail, rerun the whole thing (to get the expunge in). After it fails, just run Just an FYI, the executable that is run for |
Description of the problem request:
We have a long final action at the end of our build that we'd like to speed up. When looking at a Chrome trace of our build, that final action has much more Bazel overhead than other actions in the build.
My reading of this is that the action (
BundleTreeApp
a python script in rules_apple) is ~6s, and then after that Bazel does some post-processing inActionContinuation.execute
and then yet more post-processing in the top level invocation (skyframe?).In the above screenshot,
ActionContinuation.execute
appears to have 2s of post-processing "overhead", and "Bundling, processing and signing" has another 2s of post-processing "overhead".Feature requests: what underlying problem are you trying to solve with this feature?
When looking at a Chrome trace: How can we understand how and why Bazel overhead exists, and what can be done about it.
We see overhead at the beginning of a build as well, but this issue is focused on how to understand performance factors for poorly performing actions like this.
Bugs: what's the simplest, easiest way to reproduce this bug? Please provide a minimal example if possible.
You'd need a sufficiently large iOS project that has a non-trivial
.app
bundle.What operating system are you running Bazel on?
macOS
What's the output of
bazel info release
?release 2.0.0
The text was updated successfully, but these errors were encountered: