Skip to content

Build Time Improvements

Evren Imre edited this page Dec 9, 2022 · 4 revisions

Improving Build Times

Inspection Tools

  • Doxygen for header dependency graphs
  • clang++ with -ftime-trace for detailed analysis of build times for each compilation unit. Can be browsed by Chrome about::tracing

Attempts: Toolchain

All reported improvements are in full build times, unless indicated otherwise.

  • Use ninja instead of make: 30% improvement
  • Use ccache: Situational, but potentially very large
  • Use gold linker: Maybe 5%

Attempts: Code

All reported improvements are in full build times, unless indicated otherwise.

  • Extern templates: Insignificant, but will be more visible later
  • Dynamic linking for Boost.Unit: No difference, but smaller test executables
  • Remove stdexcept: Maybe 5%
  • Forward declaration: Limited to own types, so insignificant.
  • Move Exceptions library code to cpp: 5%
  • Exception wrappers to remove exception headers from other headers: Insignificant
Clone this wiki locally