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
Optimize compilation units and object libraries: investigate sizes, minimize includes, minimize compilation times, enforce DAG #13949
Comments
Just as an example that this is possible for a (really) large scale project: The linux kernel is moving towards merging the "fast kernel headers" patchset: https://lwn.net/ml/linux-kernel/YdIfz+LMewetSaEB@gmail.com/ |
clang now has an option
|
Another thing to check out is how expensive individual headers are. Here are the top 20 from parsing test output data:
|
Having in investigated #13926 and the fix #13932 teaches us a valuable lession: In this instance removing external library includes from our own header into a single compilation unit does speed up the compilation process by a factor of 20%.
In general, after the 9.4 release we should quantify how large our compilation units are (meaning the preprocessed CC file prior to compilation) for two configurations, (a) no external dependencies, (b) all external dependencies enabled and investigate whether we can bring this down in size.
On a related note, I think it is time we start to discuss whether we want to go through the pain of
All of this will be necessary if we want to make progress towards C++ modules (if we ever deploy them or not).
The text was updated successfully, but these errors were encountered: