Hi all,
In order to prevent unintentional build time increases, I will be enabling a new compile-size builder in CQ that will fail on CLs that increase the C++ compiler input size by over 300 MiB.
Compiler input size tracks closely with the amount of time spent in the build but is much easier to measure because of its determinism. The builder measures compile size with and without the CL and measures the difference. See background in the
design doc.
What if my CL fails?
The failure will link to
this doc, which has info about navigating the builder, links to forward declaration tips, reproduction instructions, and more. If all else fails you can override the check with
Compile-Size: <reason> in a Gerrit footer in your CL description.
How often will CLs be blocked?
Looking over
January, a couple of CLs per week on average exceeded the 300 MiB threshold. Each of them either could have been modified to use forward declarations to stay under the size limit or were worthy of discussion.
Please reach out to me with questions.
Thanks,
Erik