YoVDO

The Hitchhiker's Guide to Faster Builds

Offered By: NDC Conferences via YouTube

Tags

NDC Conferences Courses C++ Courses

Course Description

Overview

Save Big on Coursera Plus. 7,000+ courses at $160 off. Limited Time Only!
Explore techniques and tools for improving C++ build times in this comprehensive conference talk. Gain insights into the reasons behind long compilation and linking times in C++, and discover an extensive list of strategies to enhance productivity. Learn about hardware considerations, build systems, caching mechanisms, and distributed builds. Delve into code hygiene practices, unity builds, precompiled headers, and optimal linking strategies. Examine source code modification techniques like the PIMPL idiom and effective template usage. Understand the concept of modules in C++, their upcoming implementation, and how they will impact existing practices. Acquire practical knowledge to diagnose bottlenecks, optimize code structure, and significantly reduce build times in C++ projects.

Syllabus

Intro
The steps in building C++ code
Boost includes - after the preprocessor
Unreachable (dead) code
Low hanging fruit
PIMPL - pointer to implementation
PIMPL - pros & cons
Abstract interfaces & factories
Precompiled headers - usage • supported by mainstream compilers
Unity builds - cons
Unity builds - how to maintain
Inlining annotations
Templates - argument-independent code
Templates - C++11 extern template
Templates - move functions out of headers
Templates - cost of operations
Templates - other notes
Templates - tools
Diagnostics - compilation
Diagnostics - binary bloat
Build systems
Parallel builds
Diagnosing/monitoring parallelism
Sort-of winners (in terms of speed)
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 - a parallelization case study


Taught by

NDC Conferences

Related Courses

Computer Graphics
University of California, San Diego via edX
Intro to Parallel Programming
Nvidia via Udacity
Initiation à la programmation (en C++)
École Polytechnique Fédérale de Lausanne via Coursera
C++ For C Programmers, Part A
University of California, Santa Cruz via Coursera
Introduction à la programmation orientée objet (en C++)
École Polytechnique Fédérale de Lausanne via Coursera