C++ Build Speed
16 Apr 2025
[
c++
performance
design
]
Recommendation for includes
- Refactor massive header files
- Forward declarations
- Include what you use
Templates recommendation
- Consider whether you need to use template metaprogramming (constexpr, consteval)
- Re-evaluate your API
Why do modules help?
- Eliminate redundant parsing
- Precompiled headers ~ Modules
Translation unit recommendations
- Precompiled headers
- Modules
Dependency Management
- Builds should be purely functional
- Avoid large dependency bottlenecks
- Prefer smaller targets
- Explicitly expressed dependencies enables efficient hardware utilization while maintaining build correctness
Takeaways
- Profile your builds
- Compilation requires parsing which isn’t free
- Better hardware won’t always save us from ourselves
- We are all stewards of our build times
Reference