~/talk

The Hitchhiker's Guide to Faster Builds

Talkat NDC TechTown 2019 · 2019-09-02..09-05· [devops-and-delivery]
links:none on file
slides:none on file

Explains why C++ compilation and linking are slow and lists concrete ways to speed them up, covering hardware choices, build systems, caching, distributed builds, and diagnostics; techniques like unity builds, precompiled headers, and static vs shared linking; source-level changes such as the PIMPL idiom, template usage and annotations; and the role of upcoming C++ modules and which current approaches they will replace.

AI-written summary · about

  1. 0:00Intro
  2. 2:29The steps in building C++ code
  3. 6:58Boost includes - after the preprocessor
  4. 7:59Unreachable (dead) code
  5. 8:12Low hanging fruit
  6. 9:45PIMPL - pointer to implementation
  7. 10:41PIMPL - pros & cons
  8. 12:27Abstract interfaces & factories
  9. 15:38Precompiled headers - usage • supported by mainstream compilers
  10. 19:03Unity builds - cons
  11. 23:33Unity builds - how to maintain
  12. 24:50Inlining annotations
  13. 27:20Templates - argument-independent code
  14. 28:38Templates - C++11 extern template
  15. 30:03Templates - move functions out of headers
  16. 30:47Templates - cost of operations
  17. 31:36Templates - other notes
  18. 32:03Templates - tools
  19. 34:30Diagnostics - compilation
  20. 36:13Diagnostics - binary bloat
  21. 36:52Build systems
  22. 37:50Parallel builds
  23. 39:05Diagnosing/monitoring parallelism
  24. 40:58Sort-of winners (in terms of speed)
  25. 41:54Static vs dynamic linking
  26. 42:17Dynamic linking - symbol visibility
  27. 43:20Multiplatform symbol export annotations
  28. 46:10Linkers - LTO and other flags
  29. 47:05Compiler caches
  30. 49:50Distributed builds
  31. 50:37Hardware
  32. 52:22Physical design
  33. 53:04Dependency analysis
  34. 54:01Modules - history
  35. 54:32Modules - motivation
  36. 55:17Modules - VS 2017 example
  37. 56:01Modules - how they work
  38. 57:45Modules - a parallelization case study
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.