~/talk

The Hitchhikers guide to faster builds

Talkat Meeting C++ 2018 · 2018-11-15..11-17· [developer-experience]
links:none on file
slides:none on file

Claim: large C++ projects balloon compile time (Opera 15 → 64 minutes), costing ~\$10,000 per developer per year and ~\$3M for 100 devs. Practical fixes and tools named are unity builds (reported 5–20× speedups but risk ODR issues), precompiled headers (useful for huge headers like Boost Geometry producing ~10MB preprocessed output), and include-what-you-use plus caches and distributed systems (ccache/sccache, SAP CC gave WebKit 2–5× faster builds, ninja and Incredibuild for parallel scheduling). PGO, lld/gold, pimpl and external templates also appear.

AI-written summary · about

  1. 0:00Intro
  2. 1:04Reality
  3. 1:41A unique problem to C++
  4. 2:44The steps in building C++ code
  5. 3:16Why C++ compilation takes so long
  6. 7:18Debug vs Release - the most obvious
  7. 7:49Unreachable (dead) code
  8. 9:30Declarations vs definitions - functions
  9. 10:22Declarations vs definitions - types
  10. 12:29PIMPL - pointer to implementation
  11. 13:47PIMPL - pros & cons
  12. 14:57Abstract interfaces & factories
  13. 20:04Unity builds - pros
  14. 23:53Unity builds - how to maintain
  15. 24:39Inlining annotations
  16. 26:21Templates-argument-independent code
  17. 27:48Templates - C++11 extern template
  18. 29:14Templates - move functions out of headers
  19. 30:12Templates - cost of operations
  20. 30:55Templates - other notes
  21. 31:20Templates - tools
  22. 32:48Diagnostics - compilation
  23. 33:40Diagnostics - binary bloat
  24. 34:55Parallel builds
  25. 36:52Meta build systems
  26. 37:52Diagnosing/monitoring parallelism
  27. 38:28Sort-of winners (in terms of speed)
  28. 40:12Static vs dynamic linking
  29. 40:43Dynamic linking - symbol visibility
  30. 41:31Multiplatform symbol export annotations
  31. 42:58Linkers - LTO and other flags
  32. 43:43Compiler caches
  33. 46:01Distributed builds
  34. 47:25Hardware
  35. 48:07Physical design
  36. 50:18Dependency analysis
  37. 51:22Modules - history
  38. 53:00Modules - VS 2017 example
  39. 53:36Modules - how they work
  40. 54:17Modules - the current state
  41. 55:41Next steps
~/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.