Reducing Compilation Times Through Good Design

Andrew Pearcy

⏱ 90 minute session
beginner
intermediate
16:00-17:30, Thursday, 18th April 2024
Continuous integration and continuous deployment (CI/CD) have become industry standard. Being able to quickly change, verify, and deploy code provides a rapid time-to-market and encourages smaller changesets, narrowing the scope for potential bugs. However, this framework relies on the continuous integration pipeline being fast and the developer feedback cycle being short. As a project grows, its compilation time naturally increases. Left unchecked, a project's compilation time can balloon to the point where it impedes the developer feedback loop.

We found ourselves facing excessive build times that were significantly slowing down our software development life cycle. Using open source tools, we profiled our compilation and identified exactly which files, constructs, and design choices had led to these increased build times. Find out how we reduced our compilation time 10-fold through a series of concrete examples.

🏷 build
🏷 compilation
🏷 design
🏷 pre-compiled headers
🏷 unity build
🏷 profiling

Andrew Pearcy

Andrew Pearcy has spent the last four years developing Bloomberg’s financial risk products. As a full stack developer, he has delivered multiple complex projects in the financial domain to enhance the flexibility, scalability, and efficiency of Bloomberg’s Derivative Hedging Accounting solution. As part of these enhancements, he has modernised, restructured, and refactored projects, striving to constantly improve the developer experience and reduce the time-to-market of this solution.