Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

YouTube

The Hitchhiker's Guide to Faster Builds - Part 1 of 2

code::dive conference via YouTube

Overview

Save Big on Coursera Plus. 7,000+ courses at $160 off. Limited Time Only!
Explore techniques to accelerate C++ build times in this comprehensive conference talk from code::dive 2018. Delve into the reasons behind C++'s notoriously slow compilation and linking processes, then discover an extensive array of methods and tools to mitigate these issues. Learn about hardware optimization, build systems, caching strategies, and distributed builds. Examine code hygiene practices, unity builds, precompiled headers, and linking options. Investigate source code modifications like the PIMPL idiom and improved template usage. Gain insights into C++ modules, their future implementation, and how they may render certain optimization techniques obsolete. Perfect for developers seeking to enhance productivity by reducing compilation times in C++ projects.

Syllabus

Intro
Reality
Why reduce build times
The steps in building C++ code
Why C++ compilation takes so long
Standard includes after the preprocessor
Debug vs Release the most obvious
Unreachable (dead) code
Declarations vs definitions - functions
Declarations vs definitions - types
PIMPL - pointer to implementation
PIMPL - pros & cons
Abstract interfaces & factories
Precompiled headers - usage
Unity builds - cons
Unity builds - how to maintain
Unity builds - potential Clang support
Inlining annotations
Special member functions
Templates - C++11 extern template
Templates - move functions out of headers
Templates - cost of operations
Templates - other notes
Templates - tools
Templates - other good talks
Templates - more resources
Diagnostics - binary bloat

Taught by

code::dive conference

Reviews

Start your review of The Hitchhiker's Guide to Faster Builds - Part 1 of 2

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.