Overview
Explore techniques to significantly reduce C++ build times in this comprehensive conference talk from code::dive 2018. Delve into the reasons behind long compilation and linking times in C++, and discover an extensive array of tools and methods to address this productivity-hindering issue. Learn about parallel builds, meta build systems, linking strategies, compiler caches, distributed builds, and hardware optimizations. Gain insights into the PIMPL idiom, effective template usage, and code annotations. Understand the concept of C++ modules, their history, motivation, and implementation, as well as their impact on obsolete techniques. Acquire practical knowledge to enhance your C++ development workflow and boost productivity through faster build times.
Syllabus
Intro
Parallel builds
Meta build systems
Sort-of winners (in terms of speed)
Possible build system improvements
Internal vs external linkage
Static vs dynamic linking
Dynamic linking - symbol visibility
Multiplatform symbol export annotations
Linkers - LTO and other flags
Compiler caches
Distributed builds
Hardware
Physical design
Dependency analysis
Modules - history
Modules - motivation
Modules - VS 2017 example
Modules - how they work
Modules - obsolete techniques
Modules - the current state
Next steps
Enforcing
Taught by
code::dive conference