-
Notifications
You must be signed in to change notification settings - Fork 10.5k
Build dependency list once #32196
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
Build dependency list once #32196
Conversation
Remove changed lines
@swift-ci smoke test |
I'm not sure how much signal we'll get out of testing the source compat suite, but this should be a universal win that scales quasi-quadratically with the number of files in a given project. We'll merge after the tests pass, the compiler perf suite will take a day to get back to you. @swift-ci test compiler performance |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🙏Thank you!
Compilation-performance test failed |
CI is having some trouble. Will reschedule the perf run when it's back up. |
@swift-ci test compiler performance |
⛵ |
Thanks for the speedy assistance getting this merged! |
emitMakeDependenciesIfNeeded
can be a bottleneck for large Xcode projects. In our profiling, we observed a hot spot in this function, due to redundant work, and unbuffered use ofraw_fd_ostream
. For our project with ≈1M lines of mixed Swift & Obj-C, this patch improves build time from ≈470 seconds to ≈430 seconds, an 8% improvement.This project has a very large dependency chain: each dependency line has 2000+ entries, and it's repeated four times:
Also filed a separate feedback request to fix the Xcode limitation on .d files having a single target per line: FB7725318
@swift-ci Please smoke test
@swift-ci Please test compiler performance